前提条件:
[numbers]
[vip]111,222[vip]
[standard]333[standard]
[numbers]
我想要什么:找到[数字]之间的所有内容问题:当此文本在一行中时,解决方案很简单
(?<=\[numbers\])(.*?)(?=\[numbers\])
但是可以在前提条件中搜索新行吗?
前提条件:
[numbers]
[vip]111,222[vip]
[standard]333[standard]
[numbers]
我想要什么:找到[数字]之间的所有内容问题:当此文本在一行中时,解决方案很简单
(?<=\[numbers\])(.*?)(?=\[numbers\])
但是可以在前提条件中搜索新行吗?
在大多数正则表达式变体中,点 (.) 代表在线上的任何内容。
您可以使用“任何东西”的表达式来扫描行尾,例如:
(?<=\[numbers\]) ([\d\D]*?) (?=\[numbers\])
因为 [\d\D] 代表“任何是数字的东西,或者任何不是数字的东西”
对于所提出的问题,您实际上并不需要正则表达式,awk
只需设置记录分隔符即可:
awk 1 RS='\\[numbers\\]\n' ORS=''
输出:
[vip]111,222[vip]
[standard]333[standard]