我有以下字符串:
:</w:t></w:r>xxxxxxxuyyyyyzzzzz:</w:t></w:r>xxxxuuuxxxyyyyyzzzzzsomemoney
我的目标是删除字符串标记,找到第一个&#39;:&#39;在somemoney
这个词之前
:</w:t></w:r>xxxxuuuxxxyyyyyzzzzzsomemoney
但我只能得到这个
:r>xxxxuuuxxxyyyyyzzzzzsomemoney
我使用以下表达式
~:(?:.(?!:))+somemoney~
有人可以帮助我,链接测试:https://regex101.com/r/ibfY8s/1
答案 0 :(得分:0)
如果您的代码与示例中的代码一样简单,则可以使用
执行此操作:(?:<[^>]*>|[^:])*somemoney
这匹配冒号后跟两个替换中的一个,直到魔术词。
是替换<
后跟任何字符(但>
),直到结束>
,最后是结束>
。:
)。交替可以重复多次。
第一次更改将“吃掉”标签内容,因此不会对[^:]
进行测试。
Your modified regex101 example
注意!如果您的代码可以包含可以包含字符串的参数(例如HTML标记),则会使非常更加复杂。