我有一个包含以下行的大型xml文件:
<level id="100" name="blaha blah blah" currency="USD" abbr="blh">
我需要正则表达式找到“blaha blah blah”
有什么想法吗?
答案 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*"(.+?)"
该值最终将成为比赛中的第一组。
在这里,惰性量词是绝对必要的,因为否则它将匹配行上最后一个引号的所有内容(或者在文件中,如果点也匹配换行符),而不仅仅是下一个引号。