문자열의 시작 부분에있는 단어와 일치하는 정규식을 어떻게 만듭니 까? 우리는 stop
문자열의 시작 부분에서 일치하는 것을 찾고 있으며 그 뒤에는 무엇이든 할 수 있습니다.
예를 들어 표현식은 다음과 일치해야합니다.
stop
stop random
stopping
감사.
답변
사용 중지로 시작하는 줄만 일치 시키려면
^stop
stop 단어로 시작하는 줄과 공백을 일치 시키려면
^stop\s
또는 stop이라는 단어로 시작하지만 그 뒤에 공백이나 다른 단어가 아닌 문자가 오는 행을 일치 시키려면 사용할 수 있습니다 (정규식 버전 허용).
^stop\W
반면에 다음은 대부분의 정규식 버전에서 문자열의 시작 부분에있는 단어와 일치합니다 (이 버전에서 \ w는 \ W의 반대와 일치).
^\w
맛에 \ w 바로 가기가 없으면 다음을 사용할 수 있습니다.
^[a-zA-Z0-9]+
이 두 번째 관용구는 문자와 숫자 만 일치하며 기호는 전혀 일치하지 않습니다.
허용되는 단축키와 정확히 일치하는 항목 (및 유니 코드 처리 방법)을 알아 보려면 정규식 버전 매뉴얼을 확인하십시오.
답변
이 시도:
/^stop.*$/
설명:
- / 문자는 정규식을 구분합니다 (즉, 정규식 자체의 일부가 아님).
- ^ 는 줄의 시작 부분이 일치 함을 의미합니다.
- . 뒤에 * 는 모든 문자 (.), 횟수 제한 없음 (*)과 일치 함을 의미합니다.
- $ 는 줄 끝을 의미합니다.
중지 뒤에 공백을 적용하려면 RegEx를 다음과 같이 수정할 수 있습니다.
/^stop\s+.*$/
- \ s 는 모든 공백 문자를 의미합니다.
- + 뒤에 \ s 는 중지 단어 뒤에 공백 문자가 하나 이상 있어야 함을 의미합니다.
참고 : 위의 RegEx에서는 중지 단어 뒤에 공백이 있어야합니다. 따라서 다음 만 포함하는 줄과 일치하지 않습니다. stop
답변
단어 뒤에 일치하는 항목을 찾으려면 줄의 시작 부분뿐만 아니라 다음을 사용할 수 있습니다 \bstop.*\b
.- 단어 뒤에 줄
아니면 문자열 사용 단어와 일치 할 경우 \bstop[a-zA-Z]*
– 정지로 시작하는 단어 만
또는 ^stop[a-zA-Z]*
단어 만 중지 된 줄의 시작 – 첫 번째 단어 만
전체 줄 ^stop.*
– 문자열의 첫 번째 줄만
줄 바꿈을 포함하여 stop으로 시작하는 모든 문자열을 일치 시키려면 다음을 사용하십시오. /^stop.*/s
– stop으로 시작하는 여러 줄 문자열
답변
@SharadHolani가 말한 것처럼. ” stop “으로 시작하는 모든 단어와 일치하지는 않습니다.
. ” stop going ” 과 같은 줄의 시작 부분에있는 경우에만 . @Waxo는 정답을 제시했습니다.
” stop “으로 시작하고 A에서 Z 까지 의 문자 만 포함하는 단어를 찾으려면 이 방법이 약간 더 좋습니다 .
\bstop[a-zA-Z]*\b
이것은 모두 일치합니다
중지 (1)
무작위로 중지 (2)
중지 (3)
멈추고 싶다 (4)
그만 해주세요 (5)
그러나
/^stop[a-zA-Z]*/
(3)까지 (1) 만 일치하지만 (4) & (5)는 일치하지 않습니다.
답변
/stop([a-zA-Z])+/
중지 단어 (중지, 중지, 중지 등)와 일치합니다.
그러나 문자열의 시작 부분에서 “stop”을 일치 시키려면
/^stop/
할 것이다 : D
답변
“중지”, “중지”및 “중지”를 포함하여 “중지”로 시작하는 항목을 일치 시키려면 다음을 사용하십시오.
^stop
“stop going”, “stop this” 와 같이 단어 stop 다음에 오는 단어 를 일치 시키려면 “stopped”및 “stopping”이 아닌 다음을 사용하십시오.
^stop\W
답변
이 문제에 대한 간단한 정규식 접근 방식에 반대하는 것이 좋습니다. 관련이없는 다른 단어의 하위 문자열 인 단어가 너무 많으며 이미 제공된 더 간단한 솔루션을 과도하게 조정하려고 할 때 정신이 없을 것입니다.
텍스트를 먼저 처리하려면 최소한 순진한 형태소 분석 알고리즘 (Porter 형태소 분석기를 사용해보십시오. 대부분의 언어로 제공되는 무료 코드가 있음)이 필요합니다. 이 처리 된 텍스트와 전처리 된 텍스트를 두 개의 별도 공간 분할 배열에 보관합니다. 알파벳이 아닌 각 문자도이 배열에서 자체 인덱스를 가져야합니다. 필터링하는 단어 목록이 무엇이든 상관없이 그 단어를 정리하십시오.
다음 단계는 형태소 ‘중지’단어 목록과 일치하는 배열 색인을 찾는 것입니다. 처리되지 않은 배열에서 제거하고 공백에서 다시 결합하십시오.
이것은 약간 더 복잡하지만 접근 방식이 훨씬 더 신뢰할 수 있습니다. NLP 지향적 접근 방식의 가치에 대해 의구심이 있다면 명백한 실수에 대한 조사를 할 수 있습니다 .