正则表达式用于提取冒号之间的字符

RegEx for extracting chars between colons

我正在尝试提取两个冒号之间的文本,没有它们和空格,但使用我的代码我总是得到两个冒号。

句子是:xxxxxxx: hello world, my name is AAAA :description

现在,我需要:hello world, my name is AAAA

使用 (\:[^:]*\:) 我得到:: hello world, my name is AAAA :

如何解决这个问题?

您可以使用 lookarounds 断言左边是冒号,右边是冒号。

对于匹配,您可以使用否定字符 class [^:]* 来匹配 0+ 次而不是冒号。如果你想匹配至少 1 个字符,你可以将量词更改为 + 而不是 *

(?<=:)[^:]*(?=:)

Regex demo