正则表达式在 C# 中不会显示为完整字符串
本文关键字:字符串 显示 正则表达式 | 更新日期: 2023-09-27 18:36:33
我正在尝试在我的应用程序中使用此正则表达式,但由于某种原因,C# 不接受它作为完整的字符串。
如果我没记错的话,这与表达式中的几个双引号有关,但在我看来,它们被转义了。
这是正则表达式:
^((([hH][tT][tT][pP][sS]?|[fF][tT][pP])':'/'/)?(['w'.'-]+(':['w'.'&%'$'-]+)*@)?((([^'s'(')'<'>'''"'.'[']',@;:]+)('.[^'s'(')'<'>'''"'.'[']',@;:]+)*('.[a-zA-Z]{2,4}))|((([01]?'d{1,2}|2[0-4]'d|25[0-5])'.){3}([01]?'d{1,2}|2[0-4]'d|25[0-5])))('b':(6553[0-5]|655[0-2]'d|65[0-4]'d{2}|6[0-4]'d{3}|[1-5]'d{4}|[1-9]'d{0,3}|0)'b)?(('/[^'/]['w'.','?'''''/'+&%'$#'=~_'-@]*)*[^'.','?'"'''(')'[']!;<>{}'s'x7F-'xFF])?)$
以下是我尝试声明它的方式:
[RegularExpression(@"^((([hH][tT][tT][pP][sS]?|[fF][tT][pP])':'/'/)?(['w'.'-]+(':['w'.'&%'$'-]+)*@)?((([^'s'(')'<'>'''"'.'[']',@;:]+)('.[^'s'(')'<'>'''"'.'[']',@;:]+)*('.[a-zA-Z]{2,4}))|((([01]?'d{1,2}|2[0-4]'d|25[0-5])'.){3}([01]?'d{1,2}|2[0-4]'d|25[0-5])))('b':(6553[0-5]|655[0-2]'d|65[0-4]'d{2}|6[0-4]'d{3}|[1-5]'d{4}|[1-9]'d{0,3}|0)'b)?(('/[^'/]['w'.','?'''''/'+&%'$#'=~_'-@]*)*[^'.','?'"'''(')'[']!;<>{}'s'x7F-'xFF])?)$")]
对不起,格式,我不知道如何最好地显示它......
重申一下,C# 在放在双引号中时不会将其识别为字符串。
如何在 C# 中使用此表达式?
使用带有@
的字符串文字,并将双引号加倍,如@"a ""b"" c"
你必须逃脱两次。 一次用于'
,一次用于您的正则表达式。
每个转义序列应为
''d
或者