2013-02-22 44 views
0

我需要在所有的这些组合相匹配的C#正则表达式表达的端 -C#正则表达式表达检测线

ABC(和间隔和零个或多个字符后面)

ABC(并且没有空间任何随后数

ABC(和行尾)< - 这是一个我无法弄清楚

这是我迄今为止 -

bool match = Regex.IsMatch(address, @"((ABC)?[\s+0-9*])"); 

我想这无济于事(和一堆其他的东西) -

bool match = Regex.IsMatch(address, @"((ABC)?[\s+0-9*$])"); 
+3

1)标签与语言2)* *展示你做了什么,并解释它如何不工作(这也将提供适当的上下文) - 许多正则表达式支持'$',但含义各不相同,特别是如果有单/多行模式。如果需要搜索“行尾”*和/或*“输入结束”,事情会变得更加棘手。 – 2013-02-22 21:17:40

回答

1
/ABC(?: \w*|\d+|\n)/ 

\n新的生产线相匹配。

+1

也可以使用'$'取决于引擎,模式和字符串 – 2013-02-22 21:20:50

+0

这种情况不仅仅是一个空格后跟一个换行符,而不是单独换行符(即它匹配'ABC \ n'而不匹配ABC \ N')? – 2013-02-22 21:23:29

+0

这匹配'ABC \ n',但不匹配'ABC \ n'。 – 2013-02-22 21:51:04

0

也许这是你在找什么:

/ABC(?: .*|\d+)?$/ 
+0

问题在于它不会匹配**“ABC2314一些其他的东西”**。根据OP的规范,它应该匹配** ABC2314 **部分。 – 2013-02-22 21:23:57

+0

@HappyGreenKidNaps,我遵循你所说的,但OP在这种情况下并不具体。我读了_ABC(没有空格和任何后面的数字)_表示ABC后面跟着唯一的数字......在你的示例FOLLOWS ABC2314中,从技术上讲_some other stuff_因此将取消它的资格。 OP太模糊不清 – Lucas 2013-02-22 21:26:33