[regex] “stop”으로 시작하는 문자열을 일치시키는 정규 표현식

문자열의 시작 부분에있는 단어와 일치하는 정규식을 어떻게 만듭니 까? 우리는 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으로 시작하는 단어 만

또는 ^stop[a-zA-Z]*단어 만 중지 된 줄의 시작 – 첫 번째 단어 만
전체 줄 ^stop.*문자열의 첫 번째 줄만

줄 바꿈을 포함하여 stop으로 시작하는 모든 문자열을 일치 시키려면 다음을 사용하십시오. /^stop.*/sstop으로 시작하는 여러 줄 문자열


답변

@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 지향적 접근 방식의 가치에 대해 의구심이 있다면 명백한 실수에 대한 조사를 할 수 있습니다 .