c# - .net 正则表达式转换为 java @"(?<!\\)(?' M'[^|%])"?

标签 c# java .net regex

你能帮我理解/将以下.net正则表达式转换为java

@"(?<!\\)(?'M'[^|%])" ?

最佳答案

此正则表达式由两组组成。

第一个(?<!\\)是一个回顾断言。仅当前一个字母不是反斜杠时才会匹配。第二个(?'M'[^|%])是一个命名捕获组(称为 M),匹配除“|”之外的任何字符和“%”。

即正则表达式将匹配“a”,而不匹配“\a”或“%”。

Java不支持命名捕获,但是

(?<!\\)([^|%])

应该适合你。您可以按编号引用第一个组,而不是按名称。

请注意,您可能必须转义导致 (?<!\\\\) 的反斜杠对于第一部分。

关于c# - .net 正则表达式转换为 java @"(?&lt;!\\)(?' M'[^|%])"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5246407/

相关文章:

java - "Failed to resolve: com.google.firebase:firebase-core:9.0.0"

java - ArrayList 不会存储用户输入的实例

c# - Visual Studio 的属性面板中带有子属性的自定义属性

c# - .NET Micro Framework,在内存有限的设备上读取文件

java - 将参数化类转换为参数的子类

c# - 如何使用wordProcessingDocument加载wordopenxml(字符串形式)

c# - DATABASE 和 DATATABLE 之间的重复检查

c# - 从 C# 调用 C++ .dll 会引发运行时错误

c# - 小数点后保留一位,不四舍五入

c# - VS2010 Profiler 找不到符号