如果找不到定界符,则捕获所有内容

Capture everything if delimiter is not found

我有一组字符串:

first part#2nd part
a part
1st part#
#2nd part

如果字符串有'#'分隔符,我需要捕获所有后续字符。如果字符串没有 '#' 分隔符,我需要捕获字符串中的每个字符。 Link to example.

我该怎么做?

您可以使用

^(?:[^#]*#)?(.*)$

参见regex demo

详情

  • ^ - 字符串开头
  • (?:[^#]*#)? - 可选的非捕获组匹配除 # 以外的 0 个或多个字符,然后是 #
  • (.*) - 第 1 组:除换行字符外的任何 0 个或更多字符,尽可能多
  • $ - 字符串结尾。