Java与...之间的区别.Net Framework正则表达式模式
我正在尝试转换我的.Net Framework但模式无效
任何人都可以指出正则表达式模式的主要差异
e.g。我们如何命名java等中的分组结构
答案 0 :(得分:2)
有很多不同之处summarised here。
最重要的是:
@"\s"
变为"\\s"
)(?(?=regex)then|else)
)其他大多数差异都很小。上面没有提到的一个区别是Java缺乏对平衡(递归)正则表达式的支持,我希望你不必使用它。
如果您需要转换大量复杂的正则表达式,请考虑投资RegexBuddy,这将为您做到这一点。
答案 1 :(得分:1)
......还有一个实用信息。我不确定“Java不支持lookbehinds中的无限重复”是什么意思,但AFAIK和我现在测试的内容,.NET在子串(某处)寻找匹配,但Java需要适应来自原点的模式源字符串。
快速示例:
任务:是文件名word文件? (示例demo.docx)
.NET解决方案: \.docx$
(这将在“demo.docx”上取得成功,因为模式位于文件名的某处
Java解决方案: .*\.docx$
(您需要指定前缀.*
以确保模式可以从文件中的任何位置开始..NET模式在Java实现中不起作用