正则表达式只匹配第一个字符

Regex match only first char

所以基本上我有这些行:

line1:blabla:etcetc
line2:blabla2:etcetc2
line3:blabla3:etcetc3

我只需要捕获第一个“:”。现在这是我的正则表达式,但它捕获了所有 ' : '

[(:*?)]

请注意,[(:*?)] 正则表达式匹配 1 个符号,该符号可以是 (:*?) ] 因为外括号形成一个 字符 class (或 POSIX 正则表达式中的括号表达式),您可以在其中定义此构造可以匹配的字符或其范围, 但它将匹配属于 set/ranges.

的 1 个字符

第一个:可以匹配到

^([^:]*):

并替换为\t

regex demo

详情:

  • ^ - 字符串开头
  • ([^:]*) - 第 1 组捕获除 : 以外的 0+ 个字符,带有 nregated 字符 class [^:](注意我们 capture 我们需要保留的东西)
  • : - 文字 :(注意我们 匹配 我们需要替换的内容)

而替换模式中的指的是第1组中捕获的值。