【问题标题】:using regex to find a string in a tag [duplicate]使用正则表达式在标签中查找字符串[重复]
【发布时间】:2021-05-01 15:30:59
【问题描述】:

我正在编辑一个包含以下信息的 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> 

我正在尝试使用一个正则表达式,如果标签中存在某个目标字符串,它将捕获从开始到结束的所有信息。

我试过这个 &lt;placemark&gt;.*?search target.*?&lt;/placemark&gt;

但它当然会捕获比我需要的更多的东西。

请帮忙?

【问题讨论】:

  • 您的样本是否缺少开头的&lt;Placemark&gt; 标签?标签真的是大小写样式的混合体(有些全小写,有些大写)?

标签: regex notepad++


【解决方案1】:

&lt;/Placemark&gt; 使用负前瞻来限定点,以将搜索限制在此类标记内。

要查找文本 DB4436(来自您的示例),请使用:

<Placemark>((?!<\/Placemark>).)*DB4436((?!<\/Placemark>).)*<\/Placemark>

打开 DOTALL 标志(您没有指出您正在使用的语言/工具,所以我无法说明如何指定 - 它会有所不同)。

live demo

【讨论】:

  • 是的,这很好用!太感谢了!!!
  • 我正在使用notepad++,它可以工作
猜你喜欢
  • 1970-01-01
  • 2022-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-08
  • 1970-01-01
  • 2021-12-26
相关资源
最近更新 更多