C# Regex正则匹配所有字符(遇到换行回车 问题)

废话不多说,直接上内容

使用Regex.Match()方法的时候,想匹配一个子串,但是要匹配的内容可能在我加载的资源中出现换行,比如我的资源内容为john smith,我想把john smith匹配出来。

1. 正则表达式中点号(.)代表除了 以外的所有字符,但是这仅限于在中括号外使用([]),如果在中括号内使用,就仅代表点号本身,所以这个正则可以写为 "john(.| )*?smith"。

2. 正则表达式中s代表包含制表( ),换行,空格的所有空白字符,S代表不包含制表,换行,空格的所有非空白字符,那么这2个自由组合就可得到所有字符,所以可以这么写"john[sS]*?smith",

3. C#正则表达式namespace中Regex.Match()方法接收第3个参数,这个参数是一个RegexOptions枚举,经过我的试验,发现我要匹配换行和回车的内容的时候,把第3个参数指定为RegexOptions.SingleLine,在正则中可以写"john.*?smith",一样能匹配成功。所以这也作为1种方法吧,猜测是增强了点号的匹配效果,比如说能匹配 (当然只是1种猜测,检测可以在字符串中加入单独的 ,不要 ,也能匹配出结果)

注:1中使用小括号,用或连接, 2中使用中括号,中括号内的正则自动选择。

 回车 code=13 return (弱智的理解为光标移动到本行的起始位置,即Y坐标不变)

换行code=10 newline (弱智的理解为光标移动到下一行的x坐标不变的位置)

在windows OS下,我们键盘上的enter键执行了 的操作,但是在Linux下只有 的操作。因此代码中需要注意下。

《完》

原文地址:https://www.cnblogs.com/learnmoredaybyday/p/3857337.html