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

时间:2016-08-12 08:32:08

标签: regex match capture

基本上我有这些界限:

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

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

[(?:*)]

1 个答案:

答案 0 :(得分:2)

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

第一个:可以与

匹配
^([^:]*):

并替换为$1\t

请参阅regex demo

<强>详情:

  • ^ - 字符串开头
  • ([^:]*) - 第1组捕获除:以外的0 +字符,并使用nregated character class [^:](注意我们捕获我们需要保留的内容)< / LI>
  • : - 文字:(注意我们匹配我们需要替换的内容)

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