gpt4 book ai didi

正则表达式查找最后一次出现的 optional

转载 作者:行者123 更新时间:2023-12-01 10:44:07 24 4
gpt4 key购买 nike

我有这个字符串

<p class="p1">lalala</p><div><div class="div2"><div><p>lalala22</p></div></div></div>

我想找到<div><div .*?>以最后一个为准

我试过这个正则表达式

(<div>|<div .*?>)(?!.*(<div>|<div .*?>))

(<div>(?!.*<div>)|<div .*?>(?!.*<div .*?>))

但它最终总会找到 <div class="div2">而不是最后一个 <div>

如何解决?如何通过这样的可选选择使用否定前瞻?

编辑说清楚,我想要的正则表达式的最终结果是 <div><p>lalala22</p></div> , 这就是为什么我想找到最后一个开始的 div 标签

最佳答案

您可以使用这个简单的正则表达式来捕获最后一次出现的 <div>标签。这是否有效 <div>标签是否有任何属性。

.*(<div[^>]*>.*?<\/div>)

解释:

  • .* --> 贪婪地匹配任何东西直到遇到<div标签,这意味着它匹配除最后一个 div 标签之外的所有内容
  • <div[^>]*> --> 这与可选的具有任何属性的 div 标签相匹配
  • .*? --> 非贪婪地匹配任何文本并在关闭的 div 标签之前停止
  • <\/div> --> 匹配结束的 div 标签

Demo1

如果您希望正则表达式只匹配最后一个 <div>标签,你可以使用 \K运算符重置您不想包含在完整匹配中的任何匹配项,并将正则表达式更改为此,

.*\K(<div[^>]*>.*?<\/div>)

Demo2

如果这对你有用,请告诉我。

关于正则表达式查找最后一次出现的 optional ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53571405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com