Regular Expressions
단어 경계
수색…
통사론
- POSIX 스타일, 단어 끝 :
[[:>:]]
- POSIX 스타일, 단어 시작 :
[[:<:]]
- POSIX 스타일, 단어 경계 :
[[:<:][:>:]]
- SVR4 / GNU, 단어 끝 :
\>
- SVR4 / GNU, 단어 시작 :
\<
- Perl / GNU, 단어 경계 :
\b
- Tcl, 단어 끝 :
\M
- Tcl, 단어 시작 :
\m
- Tcl, 단어 경계 :
\y
- 휴대용 ERE, 단어 시작 :
(^|[^[:alnum:]_])
- 휴대용 ERE, 단어 끝 :
([^[:alnum:]_]|$)
비고
단어 일치
\bfoo\b
어떤 숫자와 함께 전체 단어 일치 _
이전 또는 그것에 의해 다음.
regularexpression.info 에서 가져 오기
단어 경계로 분류되는 세 가지 위치가 있습니다.
- 캐릭터 라인의 최초의 캐릭터의 전에, 최초의 캐릭터가 단어 캐릭터 인 경우.
- 문자열의 마지막 문자 다음에 마지막 문자가 단어 문자 인 경우.
- 문자열에서 두 문자 사이에 하나는 단어 문자이고 다른 문자는 단어 문자가 아닙니다.
여기서 단어 라는 단어 는 다음 중 하나를 의미합니다.
- 알파벳 (
[a-zA-Z]
) - 번호 (
[0-9]
) - 밑줄
_
즉, 단어 문자 = \w
= [a-zA-Z0-9_]
단어의 시작 또는 끝 부분에서 패턴을 찾습니다.
다음 문자열을 검사하십시오.
foobarfoo
bar
foobar
barfoo
- 정규 표현
bar
는 4 개의 모든 캐릭터 라인을 매치합니다. -
\bbar\b
는 두 번째, -
bar\b
는 두 번째 및 세 번째 문자열을 일치시킬 수 있습니다. -
\bbar
는 두 번째와 네 번째 문자열과 일치합니다.
단어 경계
\b
메타 문자
전체 단어를 더 쉽게 찾을 수 있도록 메타 문자 \b
사용할 수 있습니다. 영숫자 시퀀스 *의 시작 과 끝 을 표시합니다. 또한이 위치를 표시하는 역할 만하기 때문에 실제로는 아무 문자도 찾지 않습니다.
* : 영숫자 시퀀스를 단어로 부르는 것은 일반적으로 \w
(단어 문자 class)로 문자를 잡을 수 있기 때문에 한 단어를 호출하는 것입니다. 그러나 \w
에는 숫자가 포함되어 있고 대부분의 기호에는 밑줄이 있기 때문에 오해의 소지가 있습니다.
예 :
정규식 | 입력 | 성냥? |
---|---|---|
\bstack\b | stackoverflow | 아니 , 전체 단어 stack 의 발생이 없으므로 |
\bstack\b | foo stack bar | 예 , stack 전후에 아무 것도 없으므로 |
\bstack\b | stack!overflow | 예 : stack 전에는 아무 것도 없습니다 ! 단어 문자가 아니다. |
\bstack | stackoverflow | 예 , stack 전에는 아무것도 없으므로 |
overflow\b | stackoverflow | 예 , overflow 후 아무 것도 없기 때문에 |
\B
메타 문자
이것은 \b
와 반대이며 모든 경계가 아닌 문자의 위치와 일치합니다. \b
와 마찬가지로 위치와 일치하므로 문자 자체와 일치하지 않습니다. 비 전체 단어를 찾는 데 유용합니다.
예 :
정규식 | 입력 | 성냥? |
---|---|---|
\Bb\B | abc | 예 , b 는 단어 경계로 둘러싸여 있지 않기 때문에 그렇습니다 . |
\Ba\B | abc | 아니 , a 는 왼쪽에 단어 경계가 있습니다. |
a\B | abc | 예, a 우측으로 단어 경계가 없습니다. |
\B,\B | a,,,b | 예 , 두 번째 쉼표와 일치합니다. \B 는 두 단어가 아닌 문자 사이의 공백과 일치 하기 때문입니다. 첫 번째 쉼표의 왼쪽과 두 번째 쉼표의 왼쪽에 단어 경계가 있다는 점에 유의해야합니다. |
텍스트를 짧게 만들지 만 마지막 단어를 깨지 마십시오.
긴 N 개의 문자를 긴 문자로 만들지 만 마지막 단어는 그대로 두는 것이 좋습니다 .{0,N}\b
pattern :
^(.{0,N})\b.*
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow