Regex 正则表达式匹配关键字之前的第一个匹配项

Regex 正则表达式匹配关键字之前的第一个匹配项,regex,replace,match,find-occurrences,Regex,Replace,Match,Find Occurrences,我有以下字符串: <ul><li><span>some words here.</span></li><li><span>other words here.</span></li><li><span>Code: 55555.</span></li></ul> 这里有一些词。这里有其他词。代码:55555。 我的目标是从字符串(

我有以下字符串:

<ul><li><span>some words here.</span></li><li><span>other words here.</span></li><li><span>Code: 55555.</span></li></ul>
  • 这里有一些词。
  • 这里有其他词。
  • 代码:55555。
我的目标是从字符串(包含“code”关键字的li标记集)中删除此部分:

  • 代码:55555
  • 我正在尝试编写一个正则表达式,它将帮助我匹配和替换我的子字符串。 介于
  • 之间的文本可能会有所不同,但它始终具有关键字“code”。这就是我到目前为止所做的:

    <li>(.*)code:(.*?)<\/li>
    
  • (*)代码:(*)
  • 问题是,它从第一个
  • 标记开始匹配,我希望它从关键字“code”前面的
  • 标记开始匹配

    谢谢你的帮助

  • (?:(?!
  • )+code:(?:.*)

    • 按字面意思匹配
    • 后跟文本不匹配的任意数量的字符(这确保匹配仅从相关的
    • 开始)
    • 后跟文字
      code:
    • 后跟任意数量的字符(非贪婪),直到匹配文本

    您可以尝试使用正则表达式组,因此您的正则表达式如下所示:

    r'(.*)代码:(.*)){1,}'

    此正则表达式将匹配多个出现的字符串,这些字符串的格式(.*)代码:(.*)

    我想这可能对你有点帮助

    (.*)(
  • *span.*)(.*)
  • Tim Biegeleisen提供的正则表达式工作得很好。如果要确保单词“Code”存在,只需将“span”替换为“Code”,如:

    (.*)(<li>.*Code.*<\/li>)(.*)
    
    (.*)(
  • *code.*)(.*))
  • [a-z | a-z][Cc]ode:[0-9 |]+[a-z | a-z]

  • 这里regex中的关键字“Code”是强制性的

  • 代码:55555中是否可以嵌套
  • 项。
  • ?不,里面没有任何嵌套。“
  • [a-z | a-z]*[Cc]ode:[0-9 | \.]+[a-z | a-z]*
  • (.*)(<li>.*span.*<\/li>)(.*)
    
    (.*)(<li>.*Code.*<\/li>)(.*)