반응형
정규식 : "문자열의 공백 또는 시작"및 "문자열의 공백 또는 끝"지정
"stackoverflow"와 패턴 일치를 시도한다고 가정하십시오.
다음을 원합니다 :
this is stackoverflow and it rocks [MATCH]
stackoverflow is the best [MATCH]
i love stackoverflow [MATCH]
typostackoverflow rules [NO MATCH]
i love stackoverflowtypo [NO MATCH]
다음을 사용하여 두 사이트에 공백이있는 경우 stackoverflow를 구문 분석하는 방법을 알고 있습니다.
/\s(stackoverflow)\s/
문자열의 시작 또는 끝에있는 경우와 동일합니다.
/^(stackoverflow)\s/
/\s(stackoverflow)$/
그러나 정규 표현식을 사용하여 "문자열 또는 공백"과 "문자열 또는 공백"을 어떻게 지정합니까?
다음 중 하나를 사용할 수 있습니다.
\b #A word break and will work for both spaces and end of lines.
(^|\s) #the | means or. () is a capturing group.
/\b(stackoverflow)\b/
또한 경기에 공백을 포함하지 않으려면 lookbehind / aheads를 사용할 수 있습니다.
(?<=\s|^) #to look behind the match
(stackoverflow) #the string you want. () optional
(?=\s|$) #to look ahead.
(^|\s)
공백 또는 문자열 시작 및 ($|\s)
공백 또는 문자열 끝 과 일치 합니다. 함께하면 :
(^|\s)stackoverflow($|\s)
내가 사용하는 것은 다음과 같습니다.
(?<!\S)stackoverflow(?!\S)
가되어 있지 않은 경우 즉, "유래"와 일치 앞에 공백이 아닌 문자가 아니라 다음에 공백이 아닌 문자로.
이것은 "space-or-anchor"접근 방식보다 깔끔한 (IMO) 접근 방식과 마찬가지로 문자열이 단어 문자로 시작하고 끝나는 것으로 가정 \b
하지 않습니다.
\b
실제로 단어와 일치하지 않고 단어 경계에서 일치하므로 다음을 수행하십시오.
\bstackoverflow\b
반응형
'IT박스' 카테고리의 다른 글
이중 백 슬래시가있는 모든 단일 백 슬래시 (0) | 2020.07.25 |
---|---|
참조 된 어셈블리 PDB 및 XML 파일이 출력으로 복사되지 않도록 방지 (0) | 2020.07.25 |
자식 저장소에서 패치 또는 diff 파일을 만들어 다른 다른 자식 저장소에 적용하십시오. (0) | 2020.07.25 |
django 템플릿의 사전에서 사전을 반복하는 방법은 무엇입니까? (0) | 2020.07.25 |
vim 반복 다음 문자 찾기 'x' (0) | 2020.07.25 |