有很多差异。
角色类- 人物类减法
[abc-[cde]]
- .NET 是(2.0)
- Java的:通过字符类交集和否定仿真的:
[abc&&[^cde]]
)
- 人物类交集
[abc&&[cde]]
- .NET:通过字符类减法和否定的仿:
[abc-[^cde]]
) - Java 是
- .NET:通过字符类减法和否定的仿:
p{Alpha}
POSIX字符类- .NET 否
- Java 是(US-ASCII)
- 在
(?x)
模式COMMENTS
/下IgnorePatternWhitespace
,字符类中的空格(U + 0020) 有效 。- .NET 是
- Java 否
- Unipre类别(L,M,N,P,S,Z,C)
- .NET 是 :
p{L}
仅表单 - Java 是的 :
- 从Java 5: ,,
pL``p{L}``p{IsL}
- 从Java 7
p{general_category=L}
,p{gc=L}
- .NET 是 :
- Unipre类别(Lu,Ll,Lt等)
- .NET 是 :
p{Lu}
仅表单 - Java 是的 :
- 从Java 5
p{Lu}
,p{IsLu}
- 从Java 7
p{general_category=Lu}
,p{gc=Lu}
- .NET 是 :
- Unipre块
- .NET 是 :
p{IsBasicLatin}
仅。(支持的命名块) - Java 是 :(块名称为自由套管)
- 从Java 5:
p{InBasicLatin}
- 从Java 7
p{block=BasicLatin}
,p{blk=BasicLatin}
- .NET 是 :
- 所有长块名中都允许使用空格和下划线(例如,
BasicLatin
可以写为Basic_Latin
或Basic Latin
)- .NET 否
- Java 是 (Java 5)
?+
,*+
,++
和{m,n}+
(所有格量词)- .NET 否
- Java 是
Q...E
转义一串元字符- .NET 否
- Java 是
Q...E
转义字符串的字符类元字符(在字符集中)- .NET 否
- Java 是
- 有条件的匹配
(?(?=regex)then|else)
,(?(regex)then|else)
,(?(1)then|else)
或者(?(group)then|else)
- .NET 是
- Java 否
- 命名捕获组和命名后向引用
- .NET 是 :
- 捕获组:
(?<name>regex)
或(?'name'regex)
- 后向引用:
k<name>
或k'name'
- Java 是 (Java 7):
- 捕获组:
(?<name>regex)
- 向后引用:
k<name>
- 多个捕获组可以具有相同的名称
- .NET 是
- Java NO (Java 7)
- 平衡组定义
(?<name1-name2>regex)
或(?'name1-name2'subexpression)
- .NET 是
- Java 否
(?<=text)
(正向后看)- .NET 可变宽度
- Java 明显宽度
(?<!text)
(负向后看)- .NET 可变宽度
- Java 明显宽度
ExplicitCapture
选项(?n)
- .NET 是
- Java 否
(?#comment)
内联评论- .NET 是
- Java 否
- regular-expressions.info-不同正则表达式风味的比较
- MSDN库参考-.NET framework 4.5-正则表达式语言
- 模式(Java Platform SE 7)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)