这里我做一个正则表达式,其中_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 :(得分:0)
它与é符号无关。让我们来看几件事......
是否有2 |是在你的问题制定中:
The Blues||Town
此外,这一点在正则表达式中具有特殊含义,因此您应该将其转义
meaIpswich Town F\.C\.
替代品应附在括号中:
(Ipswich Town F.C.)|(Ipswich Town Football Club)|(Ipswich)|
以下java行中的括号不是必需的
regex = new Regex( @"(" + _pattern + @")"
Aneway,它匹配的原因不是有效的正则表达式。我认为这与你使用java API有关。
我为你的目的重写的正则表达式是:
^((Ipswich Town F\.C\.)|(Ipswich Town Football Club)|(Ipswich)|(The Blues)|(Town)|(The Tractor Boys)|(Ipswich Town))$
正如您所看到的,有一些差异。