正则如何匹配某个以字符开始剩下的所有内容?

2015-07-12 17:07:03 +08:00
 Air_Mu
想弄个油猴脚本解决一些问题,需要用到正则,GOOGLE第一个正则30分钟入门的网站研究了一下。

我想匹配内容中第一个“_”或者“-”开始之后的所有内容
试过这样 RegExp("(_.*|\-.*)") 勉强成功,但如果后面的内容出现换行符就不行了,换行后的内容就无法匹配。 求解
4385 次点击
所在节点    问与答
10 条回复
imn1
2015-07-12 17:10:20 +08:00
(?:[_-])[\s\S]*
yangg
2015-07-12 17:10:32 +08:00
(str.match(/[_\-]([\s\S]*)/) || [0, null)[1]
Biwood
2015-07-12 17:15:40 +08:00
(?:[^_-]).*
q84629462
2015-07-12 17:16:46 +08:00
需要匹配多行内容不是添加一个flag的事?
Biwood
2015-07-12 17:25:59 +08:00
要匹配多行的话就把 . 换成[\s\S],应该是这样 (?:[^_-])[\s\S]*
Air_Mu
2015-07-12 17:36:36 +08:00
@Biwood 不行啊 只匹配到"-"本身
ditsing
2015-07-12 18:05:54 +08:00
@Biwood 这个表情不错拿走了....
Biwood
2015-07-12 18:18:40 +08:00
@Air_Mu 亲测可行,如果用 new RegExp 的方式创建正则对象的话,记得先给这段字符转义, escapeRegExp 你明白的吧

Air_Mu
2015-07-12 18:51:25 +08:00
@Biwood 非常感谢 不用new RegExp就成功了,困扰了我好久。
zjuster
2015-07-12 19:08:47 +08:00
.是不包括换行符的,所以要换个思路。
\s是所有空格,\S是所有非空格,那么使用[\s\S]*应该可以了。
学习了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/205147

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX