正则表达式:如何逐步匹配重复模式

时间:2018-11-12 05:28:16

标签: regex

给出以下字符串:

one.two.three.four

我如何匹配/捕获,一口气得到以下结果:

one
one.two
one.two.three

(如果可能的话)

2 个答案:

答案 0 :(得分:1)

您可以使用此:

(?=(^|(?<=[.]))([\w.]+))

这将执行非宽度的向前看,这意味着该字符串将在当时的字符上进行迭代并与模式匹配;里面说:

使用非宽度后视:

  • 字符串的开头吗?
  • 我有一个。在光标后面?

使用捕获组,它将获取尚未使用的其余字符串。

答案 1 :(得分:0)

(\w+)\.?

(\w+)匹配任何单词字符(等于[a-zA-Z0-9 _])

+ Quantifier-匹配一次和无限次,并尽可能多地匹配,并根据需要返回

\.? Quantifier —逐字匹配字符.(区分大小写)

如果您的字符是小写字母。然后尝试这个。 ([a-z]+)\.?