我怎么知道我需要在正则表达式中转义哪些字符?

时间:2011-12-01 16:14:56

标签: regex bash grep

我尝试从grep的XML文件中获取行,但是我对正则表达式还不是很好,我不知道为了得到这个正则表达式字符串我需要转义哪些字符工作:

grep -o -P '<row value="[a-zA-Z0-9\-\.\/:=_]*" count="[0-9]*">[a-zA-Z0-9\-\.\/:=_]*</row>'

我试图逃避每一个角色,但这没有用。解决方案是什么?

2 个答案:

答案 0 :(得分:1)

你的正则表达式不允许文本中的空格。您要匹配的文字为Test Tester,与您的模式[a-zA-Z0-9\-\.\/:=_ ]*不符。你需要为它添加一个空格。

试试这个:

grep -o -P '<row value="[a-zA-Z0-9\-./:=_]*" count="[0-9]*">[a-zA-Z0-9\-./:=_ ]*</row>' 

答案 1 :(得分:0)

我假设您不是每日正则表达式用户,因此我建议您使用txt2re之类的工具来帮助您构建此工具。