使用正则表达式查找包含特定内容的标签之间的所有内容

时间:2018-07-29 13:08:57

标签: regex

输入(无效xml):

blabla<Val>Test2312x<End><Val>Nonazx<End><Val>Test<End><Val>Testazxcz<End><Val>asdsad<End>

目标:

提取所有包含“测试”的标签内容:

1231Test2312x

测试

Testazxcz

我尝试过此正则表达式:

<Val>.?Test.*?<End>

但是它仅捕获“ Test”之前没有任何字母的第一个匹配项。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

由于您没有提到要使用哪种语言,所以我正在使用awk

awk -F"[><]" '{for(i=1;i<=NF;i++){if($i ~ /Test/){print $i}}}' Input_file

输出如下。

Test2312x
Test
Testazxcz