전체 문자열을 정규식과 어떻게 일치 시키나요?
전체 문자열이 내 쿼리와 일치하는 경우에만 일치하는 정규식이 필요합니다.
예를 들어 "Red October"라는 이름의 영화를 검색하면 정확한 제목 (대소 문자 구분 안 함) 만 일치시키고 "The Hunt For Red October"와 같은 제목은 일치시키지 않습니다. 이 작업을 수행하는 방법을 잘 모르겠습니다. 아는 사람 있어요?
감사!
다음 정규식을 시도하십시오.
^Red October$
기본적으로 정규식은 대소 문자를 구분합니다. ^
에 표시된와는 일치하는 텍스트의 시작 $
끝.
일반적으로 기본 설정 ^
과 $
앵커는 정규식이 전체 문자열과 일치하는지 확인하는 좋은 방법입니다.
하지만 몇 가지주의 사항 :
정규식에 대체가있는 경우 정규식을 ^
and로 둘러싸 기 전에 비 캡처 그룹으로 묶어야합니다 $
.
^foo|bar$
물론 다릅니다
^(?:foo|bar)$
또한, ^
및 $
(/ 끝 시작 다른 의미에 걸릴 수 있습니다 라인 대신의 시작 / 끝의 문자열을 특정 옵션이 설정되어있는 경우). 정규식을 지원하는 텍스트 편집기에서는 일반적으로 이것이 기본 동작입니다. 일부 언어, 특히 Ruby에서는이 동작을 끌 수도 없습니다.
따라서 전체 문자열의 시작 / 끝에서만 일치하도록 보장되는 또 다른 앵커 세트가 있습니다.
\A
문자열의 시작 부분과 일치합니다.
\Z
문자열의 끝이나 마지막 줄 바꿈 전에 일치합니다.
\z
문자열의 맨 끝에 일치합니다.
그러나 모든 언어가 이러한 앵커, 특히 JavaScript를 지원하는 것은 아닙니다.
^
및 $
수정자를 사용하여 정규식 패턴이 문자열의 시작과 끝을 기준으로 배치되는 위치를 나타냅니다.
Regex.Match("Red October", "^Red October$"); // pass
Regex.Match("The Hunt for Red October", "^Red October$"); // fail
정규식을 ^
(문자열의 시작) 및 $
(문자열의 끝 ) 으로 묶어야합니다 .
^Red October$
대답하기에는 조금 늦을 수도 있지만 다른 사람에게는 유용 할 수도 있습니다.
가장 간단한 방법 :
var someString = "...";
var someRegex = "...";
var match = Regex.Match(someString , someRegex );
if(match.Success && match.Value.Length == someString.Length){
//pass
} else {
//fail
}
미안하지만 약간 불분명합니다.
내가 읽은 것에서 간단한 문자열 비교를 원합니다. 이를 위해 정규식이 필요하지 않습니다.
string myTest = "Red October";
bool isMatch = (myTest.ToLower() == "Red October".ToLower());
Console.WriteLine(isMatch);
isMatch = (myTest.ToLower() == "The Hunt for Red October".ToLower());
전체 문자열 일치는 이전 답변에서 말한 것처럼 ^
및 $
로 수행 할 수 있습니다 .
정규식의 대소 문자를 구분하지 않으려면 문자 클래스를 포함하는 해킹을 구현할 수 있습니다. 많은 문자 클래스의.
^[Rr][Ee][Dd] [Oo][Cc][Tt][Oo][Bb][Ee][Rr]$
You can do it like this Exemple if i only want to catch one time the letter minus a in a string and it can be check with myRegex.IsMatch()
^[^e][e]{1}[^e]$
참고URL : https://stackoverflow.com/questions/4123455/how-do-i-match-an-entire-string-with-a-regex
'Nice programing' 카테고리의 다른 글
XP가 설치된 VirtualBox 시스템에 스토리지를 쉽게 추가하려면 어떻게해야합니까? (0) | 2020.11.10 |
---|---|
VS2010 명령 프롬프트에서 오류 발생 : VS Common Tools 폴더의 위치를 확인할 수 없습니다. (0) | 2020.11.10 |
스프링 보안으로 사용자를 수동으로 로그 아웃하는 방법은 무엇입니까? (0) | 2020.11.10 |
Mongoose에서 객체를 저장 한 후 어떻게 objectID를 얻습니까? (0) | 2020.11.10 |
활성 예외없이 호출 된 C ++ 종료 (0) | 2020.11.10 |