一个正则匹配问题,我枯了

2020-06-09 11:34:50 +08:00
 Higurashi

想要匹配“#设置说明”

其中“#”表示任意字符串(可能包括换行符)。

我试过“\n[\s\S]?设置说明[\s\S]?\n”,但匹配过多:

枯了,搞了好久,求帮助。

2252 次点击
所在节点    正则表达式
15 条回复
darer
2020-06-09 11:46:59 +08:00
正则有.能匹配换行符的 flag
Higurashi
2020-06-09 12:08:47 +08:00
@darer 嗯,是的,只是有可能需要匹配换行符,而.会去掉换行,所以没有用这个
stillsilly
2020-06-09 12:42:45 +08:00
发几条示例数据…
constexpr
2020-06-09 12:46:04 +08:00
[\s\S]?至多匹配一个,但你说“#”表示任意“字符串”
Vegetable
2020-06-09 12:57:05 +08:00
任意字符串且包含换行符?你这不就直接把设置说明之前的所有内容都匹配上了吗?还正则干啥
ElegantOfKing
2020-06-09 13:21:16 +08:00
@Vegetable 哈哈哈,老铁没毛病
jxie0755
2020-06-09 13:25:35 +08:00
是不是“[\s\S]*?设置说明”?
kokutou
2020-06-09 13:29:56 +08:00
可以试试只匹配 1 次换行符
PineappleBeers
2020-06-09 13:31:15 +08:00
* 其中“#”表示任意字符串(可能包括换行符)*
那岂不是** /设置说明$/ **就行了吗?
Higurashi
2020-06-09 14:01:42 +08:00
@kokutou 嗯,看来需要限制换行符才行。。
Higurashi
2020-06-09 14:02:19 +08:00
@Vegetable 有道理😂
U97F3
2020-06-09 14:06:45 +08:00
正则我一般无脑(.*?)
Higurashi
2020-06-09 14:09:33 +08:00
@U97F3 哈哈,差不多
imn1
2020-06-09 14:50:08 +08:00
问题是看你的需求是行内匹配(单行),为何非要把换行符考虑进来?

#是单个字符还是可以多个字符?前者的话你 append 的正则也是错的,后者的话相当于从全文开头匹配了
Higurashi
2020-06-09 18:17:55 +08:00
@imn1 已经放弃考虑换行符了😂

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

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

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

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

© 2021 V2EX