如何在正则表达式中匹配子集(优选)或整行?

4
我有一个类似这样的字符串:
"Element 1 | Element 2| Element 3: element 4"

我想截取源字符串冒号后面的部分(到源字符串的末尾),但如果没有冒号,则我想获取整个字符串。
到目前为止,我尝试的是围绕这个变化的各种方法:
:.*|.*
:?.*

等等。

然而,虽然它们会在有无冒号的情况下匹配,但当找到冒号时,它们不会优先选择子字符串。

我已经在http://regexpal.com上尝试了这个功能。

最终,这将用于 CMDB 工具来匹配 CIs——因此通用解决方案比特定语言或引擎的解决方案更理想。


1
@mikey,你怎么知道它是 JavaScript? - Maroun
@MarounMaroun - 我从那个标签添加中撤回了这个问题。 - warren
@MarounMaroun 参考 regexpal.com,这是一个 JavaScript 正则表达式测试工具 :) - Michelangelo
1
@Mikey 但这对其他语言也是相关的。 - Maroun
2
好的,是的,但我只是假设它是JavaScript,但也可能是PHP或其他什么语言。抱歉。 - Michelangelo
2个回答

3
您可以使用以下内容:
(:.*|[^:]*)$

请查看DEMO

解释:

如果没有冒号,我想获取整个字符串

  • 可以使用否定字符类的冒号来指定此if条件。

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接