我想找到SOMETHING发生的年份(最接近的年份字符串模式,可能是2016y或16y或2016y1m3d,在关键字SOMETHING之前)并标记它,例如,更改
' 2015y,balabala; 2016y3m4d,SOMETHING发生了'
到
' 2015y,balabala; < mark> 2016y3m4d< mark> ,SOMETHING发生'
简单地匹配年份和关键词' SOMETHING'
,将无法正常工作echo '2015y, balabala; 2016y3m4d, SOMETHING happens' \
| perl -ne 's/(\d+y\d+m\d+d|\d+y\d+m|\d+y)(.*)(SOMETHING)/<mark>\1<mark>\2\3/g; print;'
将输出
&lt; mark&gt; 2015y&lt; mark&gt; ,balabala; 2016y,SOMETHING发生
任何帮助?
答案 0 :(得分:1)
您希望模式匹配最接近字符串Xvfb
。
仅修改一些正则表达式
SOMETHING
或强>
echo '2015y, balabala; 2016y3m4d, SOMETHING happens'
| perl -ne 's/(.*)\b(\d+y\d+m\d+d|\d+y\d+m|\d+y)\b(.*?)(SOMETHING)/\1<mark>\2<mark>\3\4/g; print;'