전체 문자열이 내 쿼리와 일치하는 경우에만 일치하는 정규식이 필요합니다.
예를 들어 "Red October"라는 이름의 영화를 검색하는 경우 정확한 제목 (대소 문자 구분 안 함) 만 일치시키고 "The Hunt For Red October"와 같은 제목은 일치시키지 않습니다. 이 작업을 수행하는 방법을 잘 모르겠습니다. 아는 사람 있어요?
감사!
전체 문자열이 내 쿼리와 일치하는 경우에만 일치하는 정규식이 필요합니다.
예를 들어 "Red October"라는 이름의 영화를 검색하는 경우 정확한 제목 (대소 문자 구분 안 함) 만 일치시키고 "The Hunt For Red October"와 같은 제목은 일치시키지 않습니다. 이 작업을 수행하는 방법을 잘 모르겠습니다. 아는 사람 있어요?
감사!
string1.Equals(string2, StringComparison.OrdinalIgnoreCase);
답변:
다음 정규식을 시도하십시오.
^Red October$
기본적으로 정규식은 대소 문자를 구분합니다. ^
에 표시된와는 일치하는 텍스트의 시작 $
끝.
$
항상 문자열의 끝과 일치 \z
하지는 않습니다. ( \Z
는 파이썬에서 동일합니다). Tim Pietzcker의 답변을 참조하십시오 . 하지만 JavaScript에서는 사실입니다.
일반적으로 기본 설정 ^
과 $
앵커는 정규식이 전체 문자열과 일치하는지 확인하는 좋은 방법입니다.
하지만 몇 가지주의 사항 :
정규식에 대체가있는 경우 정규식을 ^
and로 둘러싸 기 전에 비 캡처 그룹으로 묶어야합니다 $
.
^foo|bar$
물론 다릅니다
^(?:foo|bar)$
또한, ^
및 $
(/ 끝 시작 다른 의미에 걸릴 수 있습니다 라인 대신의 시작 / 끝의 문자열을 특정 옵션이 설정되어있는 경우). 정규식을 지원하는 텍스트 편집기에서는 일반적으로 이것이 기본 동작입니다. 일부 언어, 특히 Ruby에서는이 동작을 끌 수도 없습니다.
따라서 전체 문자열의 시작 / 끝에서만 일치하도록 보장되는 또 다른 앵커 세트가 있습니다.
\A
문자열의 시작 부분과 일치합니다.
\Z
문자열의 끝이나 마지막 줄 바꿈 전에 일치합니다.
\z
문자열의 맨 끝에 일치합니다.
그러나 모든 언어가 이러한 앵커, 특히 JavaScript를 지원하는 것은 아닙니다.
이 질문에 답하기에는 조금 늦을 수 있지만 다른 사람에게는 유용 할 수 있습니다.
가장 간단한 방법 :
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());
string.Contains
작업을 위해 정규식이 필요한 이유는 무엇 입니까?