C# 正则表达式,选择了多行模式后,^能匹配每行开头 $还是不能匹配每行结围,只能匹配字符串结尾
初自学C#,我用的是.net2.0环境,想用"(^[\t]+|[\t]+$)"清除段前段后空白。语句如下strOutput=Regex.Replace(strInput,...
初自学C#,我用的是.net2.0环境,想用"(^[ \t]+|[ \t]+$)" 清除段前段后 空白。
语句如下
strOutput= Regex.Replace(strInput, @"(^[ \t]+|[ \t]+$)", "", RegexOptions.Multiline );
但是只能匹配字符串每行开头空白 和 字符串结尾空白 不能匹配 每行字符串 结尾.
如果我的语句写错了,帮我写个正确的语句吧.谢谢! 展开
语句如下
strOutput= Regex.Replace(strInput, @"(^[ \t]+|[ \t]+$)", "", RegexOptions.Multiline );
但是只能匹配字符串每行开头空白 和 字符串结尾空白 不能匹配 每行字符串 结尾.
如果我的语句写错了,帮我写个正确的语句吧.谢谢! 展开
展开全部
用这个正则就可以了
(?<=[\r\n]|^)\s+|\s+[\r\n]
(?<=[\r\n]|^)\s+|\s+[\r\n]
追问
谢谢,
但我更想知道的是为什么己经选了,多行模式multiplier 后,^能匹配字符串每行开头.
而$不能匹配每行字符串结尾,只能匹配整个字符串的结尾。
追答
开启Multiline,$可以匹配\r或\n,但是也可能被别的匹配掉,
比如
^[\s\S]*$
用这个正则,就会把整个字符串匹配掉,而不是一行一行匹配
你的正则,我这边测试了下,是没有问题的,可以匹配字符串的结尾
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询