首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将扩展正则表达式转换为与.NET兼容的RegEx

将扩展正则表达式转换为与.NET兼容的RegEx
EN

Stack Overflow用户
提问于 2009-08-28 22:15:20
回答 2查看 1.6K关注 0票数 1

我有一个在*NIX系统和支持扩展正则表达式(ERE)的语言上工作得很好的RegEx。我还没有找到一个支持ERE的免费的.NET库,我也没有幸运地将它转换成一个非ERE并得到同样的结果。下面是RegEx:

代码语言:javascript
复制
^\+(<{7} \.|={7}$|>{7} \.)

背景: RegEx的目的是识别给定的字符串是否具有来自未解析的subversion合并的标记。

EN

回答 2

Stack Overflow用户

发布于 2009-08-29 01:47:40

像ERE这样的It looks to me语法与.NET的正则表达式风格基本上是向上兼容的,就像它与大多数其他“兼容”风格( JavaScript、PHP、Python、JavaScript、Ruby、Java...)一样。换句话说,您可以在ERE正则表达式中执行的任何操作,都应该能够在相同的.NET正则表达式中执行。当然是你的例子:

代码语言:javascript
复制
^\+(<{7} \.|={7}$|>{7} \.)

在.NET中的意思与在ERE中的意思相同。我能看到的唯一的主要例外是在Unicode方面;.NET遵循Unicode标准。

当你要应用正则表达式的时候,事情才会变得不同。在C#中,您可以像这样应用正则表达式:

代码语言:javascript
复制
string result = Regex.Match(targetString, @"^\+(<{7} \.|={7}$|>{7} \.)").Value;

C#的逐字字符串使你不必像在其他语言的字符串文字中那样转义反斜杠;你只需要转义引号,这是通过将引号加倍来实现的:

代码语言:javascript
复制
@"He said, ""Look out!""";

这回答了你的问题吗?

票数 4
EN

Stack Overflow用户

发布于 2009-08-28 23:07:35

RegexBuddy (当设置为POSIX ERE或GNU ERE时)表示"+“量词前面必须有一个可以重复的标记。除此之外,这似乎是一个有效的.NET正则表达式。您可能还想看看O‘’Reilly中关于正则表达式的一本好书。如果这不起作用,请发布一些您正在尝试匹配/不匹配的文本的示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1349644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档