【发布时间】:2012-03-28 21:28:40
【问题描述】:
Java 和 .Net Framework 正则表达式模式的区别
我正在尝试转换我的 .Net 框架,但模式无效
谁能指出正则表达式模式的主要区别
例如我们将如何命名 java 中的分组结构等。
【问题讨论】:
Java 和 .Net Framework 正则表达式模式的区别
我正在尝试转换我的 .Net 框架,但模式无效
谁能指出正则表达式模式的主要区别
例如我们将如何命名 java 中的分组结构等。
【问题讨论】:
有很多区别是summarised here。
最重要的是:
@"\s" 变为 "\\s")(?(?=regex)then|else))大多数其他差异很小。上面没有提到的一个区别是 Java 缺乏对平衡(递归)正则表达式的支持,我希望你永远不必使用它。
如果您需要转换大量复杂的正则表达式,请考虑投资RegexBuddy,它将为您完成。
【讨论】:
...和一个实用信息。我不确定“Java 不支持在lookbehinds 内无限重复”是什么意思,但是 AFAIK 和我现在所做的测试,.NET 在子字符串(某处)中寻找匹配,但 Java 需要从源头适应模式的源字符串。
快速示例:
task:是文件名word文件吗? (示例 demo.docx)
.NET 解决方案: \.docx$(这将在“demo.docx”上成功,因为在文件名中的某处可以找到模式
Java 解决方案: .*\.docx$(您需要指定前缀 .* 以确保模式可以在文件中的任何位置开始。.NET 模式在 Java 实现中不起作用。
【讨论】: