想要匹配“#设置说明”
其中“#”表示任意字符串(可能包括换行符)。
我试过“\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 次换行符 |
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 的正则也是错的,后者的话相当于从全文开头匹配了 |