带有w和德语特殊字符的c#正则表达式

本文关键字:正则表达式 特殊字符 德语 带有 | 更新日期: 2023-09-27 18:14:33

我需要用'w捕获一些文本,但是该文本可能包含德语Umlaute (Ü Ä Ö),这会导致我的正则表达式失败。如何扩展正则表达式以匹配这些情况?

正则表达式:

Regex PFileRegex = new Regex("printfile ps *''t*= *''t*'"[''w''s]*.ps''s*'"", RegexOptions.IgnoreCase);
 Match PFilematch = PFileRegex.Match("printfile ps = EXAMPLE Ä.ps"); //false
 Match PFilematch = PFileRegex.Match("printfile ps = EXAMPLE.ps"); //true

我知道我可以简单地在['w's]*中添加Ü Ö Ä,但这并不是真正可扩展的

带有w和德语特殊字符的c#正则表达式

在。net中,'w将默认匹配重音字母(参考)。看起来你在其他地方犯了一个错误,但由于你的问题中的代码在语法上无效,我不确切地知道在哪里。

这是我刚刚清理的代码,它应该可以工作:

var fileRegex = new Regex(@"printfile ps's*='s*""['w's]*'.ps's*""", RegexOptions.IgnoreCase);
var fileMatch1 = fileRegex.Match("printfile ps = '"EXAMPLE Ä.ps'"");
var fileMatch2 = fileRegex.Match("printfile ps = '"EXAMPLE.ps'"");

未转义的正则表达式是printfile ps's*='s*"['w's]*'.ps's*"