正则表达式适用于记事本++,但不适用于grep

时间:2017-05-16 06:44:46

标签: regex grep

我使用下面的正则表达式来单独提取标签。这在notepad ++和regexr.com中工作正常,但在使用grep时无效。

正则表达式

<message>[\s\S]*?<\/message>

示例文字

<message>
<tag1>1</tag1>
<tag2>Car</tag2>
</message>#@#
<message>
<tag1>2</tag1>
<tag2>Bus</tag2>
</message>#@#
<message>
<tag1>3</tag1>
<tag2>Car</tag2>
</message>#@#
<message>
<tag1>4</tag1>
<tag2>Truck</tag2>
</message>

grep的

grep -r "<message>[\s\S]*?<\/message>" LNBK-XML_1_0_05112017_040000.txt

1 个答案:

答案 0 :(得分:0)

使用

grep -P "<message>[\s\S]*?<\/message>" LNBK-XML_1_0_05112017_040000.txt

这使用Perl的非贪婪语法,默认情况下不会激活。