永发信息网

正则表达式 怎么表示 以 "<<"符号 开头 \n 结尾的语句替换为空格 ?

答案:1  悬赏:20  手机版
解决时间 2021-02-11 14:52
  • 提问者网友:鼻尖触碰
  • 2021-02-10 23:14
正则表达式 怎么表示 以 "<<"符号 开头 \n 结尾的语句替换为空格 ?
最佳答案
  • 五星知识达人网友:野味小生
  • 2021-02-11 00:48
正则改成

<<[sS]*?
 
改得更好点的就是
(?:[
s]*)<<[sS]*?s*(?:
|$)自己看情况来适当修改吧

追问不好意思 能解释一下嘛? 第一条中 ? 是代表最短比配, 那第二条中 开头的 ?: 是什么意思呢 ?不太看得明白
还有 \s\S 这里 为什么要用呢?( 刚刚在R 上面运行报错 说 '\s' 不识别)
先谢谢了!追答『(?:匹配的代码)』,这其实效果和『(匹配的代码)』是一样的,只是后者会把括号里匹配到的内容存到分组里,而前者则不存到分组里。
『\s』是匹配空白符的 『\S』是匹配非空白的,两个一起那就能匹配所有的字符了,包括回车换行,我没用过R,R里没有『\s』的话,那你试下把『\s\S』下 『\d\D』 吧,而其它单独的『\s』就换成一个空格(用键盘按下空格键得到的那个符号,虽然肉眼看不出空格,但实际上已经存在了),如果不行,那就换成『(.|\n)』。追问谢谢你哈~! 解释很清楚~ 把悬赏提高了 采纳了~
只是有点小疑惑 如果『\s\S』是为了匹配所有的字符 那和『.*』的功能是不是一样呢?(点 是所有字符包括空格 星号是多个 )追答你想问的是『[\s\S]*』和『.*』的功能是不是一样的吧?

我们主观上认为是一样的,实际上还有点差别,差别就在于『.』它不包括换行,所以想用『.』的话,得用括号括起来,就像这么写『(.|\n)*』。

要注意圆括号和方括号的区别,方括号是把单个字符集合在其中的,每次只匹配里面的一个字符,而圆括号里的是匹配表达式的,用竖线『|』来把提供选择的多个表达式隔开,从左到右匹配,即第一部分的表达式不能成立它就会试着第二部分,再不行就第三部分,直到有一部分能匹配到或者已经没有表达式可以匹配为止,『([0-9]+|[a-z]+)』里的第一部分是『[0-9]+』,第二部分是『[a-z]+』,它先看第一部分能不能匹配到(全数字),如果不行再使用第二部分来尝试匹配(全小写字母),如果都匹配不到就匹配失败了。

另,感谢加分,让我意外惊喜,哈哈哈 ╰(*°▽°*)╯
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯