我有一个带有以下行的大型 xml 文件:
<level id="100" name="blaha blah blah" currency="USD" abbr="blh">
我需要正则表达式来查找“blaha blah blah”
有任何想法吗?
我有一个带有以下行的大型 xml 文件:
<level id="100" name="blaha blah blah" currency="USD" abbr="blh">
我需要正则表达式来查找“blaha blah blah”
有任何想法吗?
正如其他人所写的那样,Regex 不适用于这种情况,如果您正在寻找一个健壮的解决方案,那么 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">
如果正则表达式必须只匹配,blah blah blah
您可以使用:
(?<=<level[^>]*\bname\s*=\s*").+?(?=")
否则,我建议您使用类似的东西:
<level[^>]*\bname\s*=\s*"(.+?)"
该值最终将作为匹配中的第一组。
在这里,惰性量词是绝对必要的,因为否则它将匹配到行上的最后一个引号(或者在文件中,如果点也匹配换行符),而不仅仅是下一个引号。