2012-05-24 2 views
0

여기 정규 표현식을 수행합니다. 여기서 _pattern은 팀 목록이고 _name은 _pattern과 일치하는지 여부를 찾는 키워드입니다.패턴을 외국어와 일치하는 경우

결과가 일치하는 것으로 나타납니다. 나는 키워드가 _pattern과 완전히 다르기 때문에 이것이 가능한 이유가 궁금합니다. 나는 그것이 é 기호와 관련이 있다고 생각한다.

string _pattern = "Ipswich Town F.C.|Ipswich Town Football Club|Ipswich|The Blues||Town|The Tractor Boys|Ipswich Town"; 
string _name = "Estudiantes de Mérida"; 
regex = new Regex(@"(" + _pattern + @")", RegexOptions .IgnoreCase); 

Match m = regex. Match (_name); 
if (m . Success) 
{ 
    var g = m. Groups [1 ]. Value; 
    break ; 
} 

답변

0

é 기호와는 아무런 관련이 없습니다. 몇 가지를 살펴 보겠습니다.

2 | 귀하의 질문로 공식화 :

The Blues||Town 

은 또한 요점은 당신이 정규식에서 특별한 의미를 탈출해야했다 그래서

meaIpswich Town F\.C\. 

그리고 대안은 괄호로 묶어야합니다 :

(Ipswich Town F.C.)|(Ipswich Town Football Club)|(Ipswich)| 

다음 자바 라인의 괄호는 필요 없습니다.

regex = new Regex(@"(" + _pattern + @")" 

Aneway, 일치하는 이유는 유효한 정규식과 다릅니다. 나는 그것이 당신의 자바 API 사용과 관련이 있다고 생각한다. 나는 당신의 목적을 위해 다시 것

정규식은 다음과 같습니다 당신이 볼 수 있듯이

^((Ipswich Town F\.C\.)|(Ipswich Town Football Club)|(Ipswich)|(The Blues)|(Town)|(The Tractor Boys)|(Ipswich Town))$ 

는 몇 가지 차이점이 종료된다.

관련 문제