正则表达式,用于将关键字后的所有内容替换为冒号,直到任何其他关键字的冒号
我有以下类型的字符串:
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+:|$): 正向前瞻断言我们:前面有一个单词 +或行尾。