我有一个在*NIX系统和支持扩展正则表达式(ERE)的语言上工作得很好的RegEx。我还没有找到一个支持ERE的免费的.NET库,我也没有幸运地将它转换成一个非ERE并得到同样的结果。下面是RegEx:
^\+(<{7} \.|={7}$|>{7} \.)背景: RegEx的目的是识别给定的字符串是否具有来自未解析的subversion合并的标记。
发布于 2009-08-29 01:47:40
像ERE这样的It looks to me语法与.NET的正则表达式风格基本上是向上兼容的,就像它与大多数其他“兼容”风格( JavaScript、PHP、Python、JavaScript、Ruby、Java...)一样。换句话说,您可以在ERE正则表达式中执行的任何操作,都应该能够在相同的.NET正则表达式中执行。当然是你的例子:
^\+(<{7} \.|={7}$|>{7} \.)在.NET中的意思与在ERE中的意思相同。我能看到的唯一的主要例外是在Unicode方面;.NET遵循Unicode标准。
当你要应用正则表达式的时候,事情才会变得不同。在C#中,您可以像这样应用正则表达式:
string result = Regex.Match(targetString, @"^\+(<{7} \.|={7}$|>{7} \.)").Value;C#的逐字字符串使你不必像在其他语言的字符串文字中那样转义反斜杠;你只需要转义引号,这是通过将引号加倍来实现的:
@"He said, ""Look out!""";这回答了你的问题吗?
发布于 2009-08-28 23:07:35
RegexBuddy (当设置为POSIX ERE或GNU ERE时)表示"+“量词前面必须有一个可以重复的标记。除此之外,这似乎是一个有效的.NET正则表达式。您可能还想看看O‘’Reilly中关于正则表达式的一本好书。如果这不起作用,请发布一些您正在尝试匹配/不匹配的文本的示例。
https://stackoverflow.com/questions/1349644
复制相似问题