gpt4 book ai didi

c# - 关于重构正则表达式字符类减法的建议

转载 作者:行者123 更新时间:2023-11-30 15:40:30 26 4
gpt4 key购买 nike

Mono 的正则表达式实现有一个错误,这意味着它不能正确处理正则表达式字符类减法。

IE:“[ab-[a]]”实际上应该是字符集“[b]”。

例如,.NET 上的以下代码将输出“The\ncat\nsat\non\nthe\nmat”。
此示例包含我尝试在单声道上使用的简化正则表达式。

string listOfUnicodeChars = "\u2e80";  
string patten =
"[\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lo}‌‍\\p{Mn}\\p{Mc}\\p{Lm}-[" + listofUnicodeChars +"]]+";

Regex regex = new Regex(pattern);
foreach (var match in regex.Matches("The cat sat on the mat."))
Console.WriteLine(match);

但是使用单声道,正则表达式什么都不匹配。

对于如何用不同方式编写的正则表达式获得相同的效果,有没有人有任何建议?

最佳答案

您是否考虑过使用 negative lookahead ?如:

"(?![" + listOfUnicodeChars + "])[\\p{Lu}" + ... + "]"

关于c# - 关于重构正则表达式字符类减法的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9137031/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com