如何匹配包含#Test
的任何行以及它的所有下一行,只要它们以:
- 任意数量的空格,后跟
;
例子:
1. ; #Test
2. ; bbbb
3.
4. ; #Test
5.
6. ; aaa
第一行和第二行是one
匹配,第4行是另一个匹配
这是我得到的:s*(#Test).*(s*;.*)*
https://regex101.com/r/HvPAxt/1
我目前的疑问是如何在发现空行时停止匹配。
Example2:
1. ; #Test
2. ; bbbb
3.
4. xxxx
5. ; #Test
6. yyyy
7.
8. ; #Test
9.
10. ; bbb
第一行和第二行是one
match
第5行另一个匹配
第8行是另一个匹配。
RE的问题是s
也匹配换行符。
您需要使用对换行符明确的正则表达式,因为您对它们有特定的要求。
所以我会使用[ t]*
来匹配空格和制表符,而不是s*
:
[ t]*(#Test).*(n[ t]*;.*)*
PS:请确保不要使用s
选项(单行),因为这样.
也会开始匹配换行符。