想要匹配“#设置说明”
其中“#”表示任意字符串(可能包括换行符)。
我试过“\n[\s\S]?设置说明[\s\S]?\n”,但匹配过多:
枯了,搞了好久,求帮助。
谢谢每位帮助者,现在不再考虑包含换行符的情况,改为\n.*?设置说明[\s\S]*?\n
可以满足要求。问题关闭。
1
darer 2020-06-09 11:46:59 +08:00
正则有.能匹配换行符的 flag
|
3
stillsilly 2020-06-09 12:42:45 +08:00 via iPhone
发几条示例数据…
|
4
constexpr 2020-06-09 12:46:04 +08:00 via Android
[\s\S]?至多匹配一个,但你说“#”表示任意“字符串”
|
5
Vegetable 2020-06-09 12:57:05 +08:00
任意字符串且包含换行符?你这不就直接把设置说明之前的所有内容都匹配上了吗?还正则干啥
|
6
ElegantOfKing 2020-06-09 13:21:16 +08:00
@Vegetable 哈哈哈,老铁没毛病
|
7
jxie0755 2020-06-09 13:25:35 +08:00 via iPhone
是不是“[\s\S]*?设置说明”?
|
8
kokutou 2020-06-09 13:29:56 +08:00 via Android 1
可以试试只匹配 1 次换行符
|
9
PineappleBeers 2020-06-09 13:31:15 +08:00
* 其中“#”表示任意字符串(可能包括换行符)*
那岂不是** /设置说明$/ **就行了吗? |
12
U97F3 2020-06-09 14:06:45 +08:00
正则我一般无脑(.*?)
|
14
imn1 2020-06-09 14:50:08 +08:00
问题是看你的需求是行内匹配(单行),为何非要把换行符考虑进来?
#是单个字符还是可以多个字符?前者的话你 append 的正则也是错的,后者的话相当于从全文开头匹配了 |