[英]C# Regex “Verbose” like in Python
在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#中是否有類似的東西?
是的,您可以在.NET正則表達式中添加注釋。
(示例摘自: https : //docs.microsoft.com/zh-cn/dotnet/standard/base-types/regular-expression-language-quick-reference#miscellaneous_constructs )
您可以使用(?# .... )
進行內聯注釋:
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關於在多行上使用逐字字符串@""
的答案
您可以使用逐字字符串(使用@
),該字符串允許您編寫:
var regex = new Regex(@"^(?<delim>\\.) # delimiter "".""
(?<root>\\w+)$ # Root Symbol, at least 1 character
", RegexOptions.IgnorePatternWhitespace);
請注意使用RegexOptions.IgnorePatternWhitespace
選項來編寫詳細的正則表達式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.