0

如何使用正则表达式从输入字符串创建子字符串?
每个子字符串在输入中应该只有 3 个连续的字符。

前任:

 input text="1234abc";

预期子串

输出 :123,234,34a,4ab.abc....

4

2 回答 2

1

使用前瞻

 (?=(.{3}))

因此,前 3 个字符将在前瞻中分组捕获。现在它将移动到下一个字符(即您的示例中的2 个)并再次捕获 3 个字符,依此类推。

笔记:

环视支持中的组捕获仅限于某些正则表达式实现

于 2013-04-05T06:28:27.380 回答
0

您可以使用以下正则表达式:

(?=(.{3})).

它是如何工作的 - 前瞻向前看三个字符并将它们放入第 1 组。然后我们有一个单.吃一个字符。这会使正则表达式引擎向前移动,以便它可以进行下一个匹配。

要获取连续字符,您需要遍历所有匹配项并提取第一组。您如何执行此操作取决于您使用的语言。

您还可以在debuggex上对此进行可视化。沿着测试字符串拖动黑色三角形,观察比赛中第 1 组的情况。

于 2013-04-05T07:18:51.170 回答