如何完全忽略RegEx中的换行符和制表符?

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

... [CustomToken \t \r\n Type="User" \t \r\n Property="FirstName" \n /] ... [CT ... 

这是我目前使用的RegularExpression:

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

.NET API

 Regex.Matches(string input, string pattern) 

谢谢你的建议。

如果您只想让该正则表达式匹配该输入,那么您需要做的就是指定单线模式:

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

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

没有办法用正则表达式“忽略”任何类型的字符。 你可以忽略字母大小写,但那是关于它的。

你最好的选择是使用\s+ ,你会期望某种类型的空白。 \s类将匹配任何空格,包括换行符,回车符,制表符和空格,这将使您的正则表达式模式看起来更好。

你需要标签/换行符吗? 您可以随时将tab /换行符替换为空字符以将其删除。

 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 

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

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