正则表达式,用于将关键字后的所有内容替换为冒号,直到任何其他关键字的冒号

我有以下类型的字符串:

This is a test: 1, two again,three test2: what is, this
test: acid, kool-aid word: some more info
Another test: face, 3, & yes

我想做的是删除test:和之后的所有内容,直到遇到另一个带有冒号的单词。

上面的结果集如下所示:

This is a test2: what is, this
word: some more info
Another

这是我尝试过的,但是当没有带冒号的单词时会失败(因此示例 3 失败)
test:.+?(?=w+:)

回答

您可以使用此正则表达式进行匹配:

 *btest:.*?b(?=w+:|$)

并替换为空字符串。

正则表达式演示

正则表达式详情:

  • *: 匹配 0 个或多个空格
  • btest: 匹配完整的单词 test:
  • .*?b: 匹配 0 个或多个任意字符(惰性匹配),后跟一个单词边界
  • (?=w+:|$): 正向前瞻断言我们:前面有一个单词 +或行尾。

以上是正则表达式,用于将关键字后的所有内容替换为冒号,直到任何其他关键字的冒号的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>