regex - 如何匹配正则表达式中的子集(首选)或整行?

regex - 如何匹配正则表达式中的子集(首选)或整行?,第1张

我有一个看起来像这样的字符串:

"Element 1 | Element 2| Element 3: element 4"

我想将冒号后面的源字符串部分子串到子串(到源字符串的末尾),但如果没有冒号,那么我想抓住整个字符串。

到目前为止,我尝试过的是各种变化:

:.*|.*
:?.*

但是,如果冒号存在与否,它们将匹配,但在找到冒号时,它们不喜欢子串。

我一直在http://regexpal.com上玩这个。

最终,这将用于CMDB工具中以匹配CI - 因此一般解决方案将是理想的,而不是语言或引擎特定的。

最佳答案:

2 个答案:

答案 0 :(得分:3)

您可以使用以下内容:

(:.*|[^:]*)$

请参阅DEMO

说明:

  

如果没有冒号,那么我想抓住整个字符串

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

答案 1 :(得分:1)

您可以使用:

(?:^|:)[^:\n]*$

RegEx Demo

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
U19学习网站 » regex - 如何匹配正则表达式中的子集(首选)或整行?