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>)(.*)