在Python中,我们有re.VERBOSE
参数,允许我们很好地格式化regex
表达式并包含注释,例如
import re
ric_index = re.compile(r'''(
^(?P<delim>\.) # delimiter "."
(?P<root>\w+)$ # Root Symbol, at least 1 character
)''',re.VERBOSE)
C#中有类似内容吗?
答案 0 :(得分:3)
是的,您可以在.NET regex中发表评论。
您可以使用(?# .... )
string regex = @"\bA(?#Matches words starting with A)\w+\b"
或评论到行#
string regex = @"(?x)\bA\w+\b#Matches words starting with A"
你总是可以在几行上跨越你的正则表达式字符串,并使用经典的C#注释:
string regex =
@"\d{1,3}" + // 1 to 3 digits
@"\w+" + // any word characters
@"\d{10}"; // 10 digits
另见Thomas Ayoub关于在几行中使用逐字字符串@""
的答案
答案 1 :(得分:3)
您可以使用逐字字符串(使用@
),它允许您编写:
var regex = new Regex(@"^(?<delim>\\.) # delimiter "".""
(?<root>\\w+)$ # Root Symbol, at least 1 character
", RegexOptions.IgnorePatternWhitespace);
请注意使用RegexOptions.IgnorePatternWhitespace
选项来编写详细的正则表达式。