正则表达式 - 用新行搜索字符串

时间:2012-09-07 15:51:43

标签: regex

前提条件:

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

我想要的: 找到[数字]之间的一切 问题: 当这个文本在一行中时,解决方案很简单

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

但是有可能在新条件的前提条件下进行搜索吗?

2 个答案:

答案 0 :(得分:0)

在大多数正则表达式中,点(。)代表在线上的任何东西。

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

(?&lt; = \ [numbers \])([\ d \ D] *?)(?= \ [numbers \])

as [\ d \ D]代表'任何数字,或任何不是数字的东西'

答案 1 :(得分:0)

对于提出的问题,您真的不需要正则表达式,awk它足以设置记录分隔符:

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

输出:

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