正则表达式模式查询以匹配字符串中的文本

时间:2013-06-18 15:32:35

标签: regex

我有一个包含以下行的大型xml文件:

<level id="100" name="blaha blah blah" currency="USD" abbr="blh">

我需要正则表达式找到“blaha blah blah”

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

正如其他人所写的那样,Regex对于这种情况是 NOT ,如果您正在寻找一个强大的解决方案,那么XML解析器就是您的选择。为了快速和肮脏,这将工作:

\sname\s*=\s*""(.*?)""

符合以下条件:

<level id="100" name="blaha blah blah" currency="USD" abbr="blh">
<level id="100" name ="blaha blah blah" currency="USD" abbr="blh">
<level id="100" name= "blaha blah blah" currency="USD" abbr="blh">
<level id="100" name  =  "blaha blah blah" currency="USD" abbr="blh">

答案 1 :(得分:0)

如果正则表达式必须仅匹配 blah blah blah,则可以使用:

(?<=<level[^>]*\bname\s*=\s*").+?(?=")

否则,我建议你使用类似的东西:

<level[^>]*\bname\s*=\s*"(.+?)"

该值最终将成为比赛中的第一组。

在这里,惰性量词是绝对必要的,因为否则它将匹配行上最后一个引号的所有内容(或者在文件中,如果点也匹配换行符),而不仅仅是下一个引号。