0

前提条件:

[numbers]
[vip]111,222[vip]
[standard]333[standard]
[numbers]

我想要什么:找到[数字]之间的所有内容问题:当此文本在一行中时,解决方案很简单

(?<=\[numbers\])(.*?)(?=\[numbers\])

但是可以在前提条件中搜索新行吗?

4

2 回答 2

0

在大多数正则表达式变体中,点 (.) 代表在线上的任何内容。

您可以使用“任何东西”的表达式来扫描行尾,例如:

(?<=\[numbers\]) ([\d\D]*?) (?=\[numbers\])

因为 [\d\D] 代表“任何是数字的东西,或者任何不是数字的东西”

于 2012-09-07T16:00:01.367 回答
0

对于所提出的问题,您实际上并不需要正则表达式,awk只需设置记录分隔符即可:

 awk 1 RS='\\[numbers\\]\n' ORS=''

输出:

[vip]111,222[vip]
[standard]333[standard]
于 2012-09-07T16:33:03.013 回答