所以我有以下格式的字符串
[randomstring] [randomtest]
[randomstring] [texttext...
Data:
{"data}]
因此,每行唯一的共同点是,所有文本均存储在每行正好2个方括号内[text1][text2]
。问题是文本多行显示:
[text1][text2
text3
text4]
所以我正在寻找一个正则表达式来匹配每[][]
对,每行,并提出了这个:
https://regex101.com/r/vI0oF6/1
如您所见,只有第一行是匹配的,而不是第二行。有没有更好的办法 ?
您有两个选择。使用s
修饰符将换行符与匹配.
,或仅在方括号内接受换行符。
/(\[.+?\]+\s?\[.+?\])/gs
https://regex101.com/r/vI0oF6/5
/(\[(?:.|\n)+?\]+\s?\[(?:.|\n)+?\])/g
https://regex101.com/r/vI0oF6/6
请注意,我正在使用(?:.|\n)
语法创建一个非捕获组。
另外,请注意,我?
在方括号内使用了非贪婪匹配标记,以使其在首次遇到方括号时不再匹配,而不是贪婪,并且使点与方括号匹配。可视化后,?
在量词(*
或+
)之后执行此操作:
?
,.+
则表示贪婪,并且匹配直到最后一次见面]
# Simple example: \[.+\]
[foo][bar]
^--------^
?
,.+
是不贪婪,只有等到第一次见面匹配]
# Simple example: \[.+?\]
[foo][bar]
^---^
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句