C# 如何完全忽略正则表达式中的换行符和制表符?

C# 如何完全忽略正则表达式中的换行符和制表符?,c#,asp.net,regex,C#,Asp.net,Regex,有没有办法完全忽略正则表达式中的换行符和制表符等? 例如,换行符和制表符可以在内容字符串中的任何位置以任何顺序找到 ... [CustomToken \t \r\n Type="User" \t \r\n Property="FirstName" \n /] ... [CT ... 是我当前使用的常规表达式: (\[CustomToken).*?(\/\]) .NETAPI Regex.Matches(string input, string pattern) 谢谢你的建议。你需要标签/换

有没有办法完全忽略正则表达式中的换行符和制表符等? 例如,换行符和制表符可以在内容字符串中的任何位置以任何顺序找到

... [CustomToken \t \r\n Type="User" \t \r\n Property="FirstName" \n /] ... [CT ...
是我当前使用的常规表达式:

(\[CustomToken).*?(\/\])
.NETAPI

Regex.Matches(string input, string pattern)

谢谢你的建议。

你需要标签/换行吗?您总是可以用空字符替换制表符/换行符来删除它们

string mystring = "\t\nhi\t\n";

string mystring_notabs = mystring.Replace("\t",""); //remove tabs

mystring = mystring_notabs.Replace("\n",""); //remove newline and copy back to original
没有办法用正则表达式“忽略”任何类型的字符。你可以忽略字母大小写,但仅此而已


您最好使用
\s+
,您可能希望在其中使用某种类型的空白。
\s
类将匹配任何空格,包括换行符、回车符、制表符和空格,这将使您的正则表达式模式看起来更好。

如果您只想让正则表达式匹配该输入,只需指定单线模式:

Regex.Matches(input, @"\[CustomToken).*?(/\])", RegexOptions.Singleline);

点元字符通常匹配除换行符以外的任何字符(
\n
)。单线模式,也称为“点匹配全部”或“点匹配全部”模式,也允许它匹配换行符。

我遇到了多行XML值的问题。我希望数据在一个描述字段中,并且我不想将我的C#代码更改为使用单行选项,因为我正在从数据库中动态读取正则表达式以进行解析。这解决了我的问题,特别是前线的(?s):

 (?s)(?<=<description>).*(?=<\/description>)
(?s)(?