使用正则表达式在标签中查找字符串
using regex to find a string in a tag
我正在编辑一个包含如下信息的 KML 文件:
<name>some name</name>
<description> some description and search target</description>
<styleUrl>#icon-960-DB4436</styleUrl>
<Point>
<coordinates>
34.7661563,32.059198,0
</coordinates>
</Point>
</Placemark>
我正在尝试使用一个正则表达式,如果标签中存在某个目标字符串,它将捕获从开始到结束的所有信息。
我试过了
<placemark>.*?search target.*?</placemark>
但当然它会捕捉到比我需要的更多的东西。
有什么帮助吗?
为 </Placemark>
限定具有负前瞻性的点,以将搜索限制在此类标签内。
要查找文本 DB4436
(来自您的示例),请使用:
<Placemark>((?!<\/Placemark>).)*DB4436((?!<\/Placemark>).)*<\/Placemark>
打开 DOTALL 标志(您没有指明您正在使用的 language/tool,所以我无法展示如何指定 - 它会有所不同)。
我正在编辑一个包含如下信息的 KML 文件:
<name>some name</name>
<description> some description and search target</description>
<styleUrl>#icon-960-DB4436</styleUrl>
<Point>
<coordinates>
34.7661563,32.059198,0
</coordinates>
</Point>
</Placemark>
我正在尝试使用一个正则表达式,如果标签中存在某个目标字符串,它将捕获从开始到结束的所有信息。
我试过了
<placemark>.*?search target.*?</placemark>
但当然它会捕捉到比我需要的更多的东西。
有什么帮助吗?
为 </Placemark>
限定具有负前瞻性的点,以将搜索限制在此类标签内。
要查找文本 DB4436
(来自您的示例),请使用:
<Placemark>((?!<\/Placemark>).)*DB4436((?!<\/Placemark>).)*<\/Placemark>
打开 DOTALL 标志(您没有指明您正在使用的 language/tool,所以我无法展示如何指定 - 它会有所不同)。