문자열에 대한 정규식에 포함됩니까?


114

문자열에 특정 단어 (예 : 'Test')가 포함되어 있는지 확인하기위한 정규식은 무엇입니까? 나는 인터넷 검색을 해 보았지만 그러한 정규식의 직접적인 예를 얻을 수 없습니다. 이것은 빌드 스크립트 용이지만 특정 프로그래밍 언어와는 관련이 없습니다.

답변:


78

일반 PCRE 스타일의 정규식 버전을 가정합니다.

당신이 그것을 확인하려는 경우 하나의 전체 단어 , 그건 \bTest\b원하는 및 프로그래밍 언어에 대한 구분 경우 소문자 구분에 적합한 플래그. \b"단어 경계", 즉 단어가 시작 또는 끝으로 간주 될 수있는 문자 사이의 지점을 나타냅니다. 예를 들어, 공백은 단어를 구분하는 데 사용되므로 공백의 양쪽에 단어 경계가 있습니다.

당신이 그것을 확인하려면 단어의 일부 , 그것은 단지 Test소문자 구분에 적절한 플래그를 다시. 일반적으로 전용 "하위 문자열"메서드는 정규식 구문 분석의 오버 헤드를 제거하기 때문에이 경우 더 빠른 경향이 있습니다.


1
" \b는"단어 경계 ", 즉 두 단어를 구분하는 것 (예 : 공백)을 나타냅니다." \b공백과 일치하지 않습니다. 문자 (또는 대부분의 경우 줄의 시작 또는 끝에서) 일치하는 단언입니다 .
strager

1
@strager : 네, 맞아요-내 설명이 약간 부정확했습니다. 편집하겠습니다.
Michael Madsen

117

패턴을 고정하지 마십시오.

/Test/

위의 정규식은 그 안에 어딘가에있는 리터럴 문자열 "Test"를 확인합니다.


2
고마워요, 그렇게 간단한 줄 몰랐어요! 나는 인터넷 검색에서 이것을 보지 못했습니다. 내 패턴을 고정하지 않는다는 것은 무슨 뜻입니까?
GurdeepS

7
문자열의 시작 또는 끝에 일치하도록 패턴을 고정 할 수 있습니다 (예 : 각각 / ^ Test / 또는 / Test $ / 또는 / ^ Test $ /). 이 예제는 동등성을 비교하는 것보다 이점을 제공하지 않기 때문에 치명적이지만, 예를 들어 양식 필드 유효성 검사를 수행 할 때 / ^ \ d + $ /와 같은 정규식은 필드에 적어도 하나의 숫자 만 포함되고 숫자 만 포함 된 경우에만 일치합니다.
David Clarke

-13

나는 몇 년 늦었지만 왜 안돼?

[Tt][Ee][Ss][Tt]

4
이 대답은 아마도 코드를 설명하지 않았기 때문에 낮은 품질의 검토 대기열에 나타났습니다. (당신의 대답에서) 설명한다면, 당신은 더 많은 찬성표를 얻을 가능성이 훨씬 더 높습니다. 그리고 질문자는 실제로 무언가를 배웁니다!
모자입니다 가진 사람

6
이것은 매우 일반화 할 수 없습니다. 검색해야하는 단어가 사용자로부터 왔다고 상상해보십시오. [Aa]모든 문자에 대해 패턴 을 생성해야하며 매우 추악해질 것입니다.
Platinum Azure
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.