【问题标题】:How to create substrings from input string using regex?如何使用正则表达式从输入字符串创建子字符串?
【发布时间】:2013-04-05 06:22:04
【问题描述】:

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

例如:

 input text="1234abc";

预期的子字符串

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

【问题讨论】:

  • 你应该指定你正在使用的语言/工具。正则表达式的实现因语言/工具而异

标签: regex substring


【解决方案1】:

使用前瞻

 (?=(.{3}))

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

注意:

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

【讨论】:

    【解决方案2】:

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

    (?=(.{3})).
    

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

    要获取连续字符,您需要遍历所有匹配项并提取第一组。具体操作方式取决于您使用的语言。

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

    【讨论】:

    • 你不需要吃任何字符...最后是冗余
    • 这取决于您使用的语言。例如,在 JavaScript 中,匹配空字符串不会使索引向前移动。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-20
    • 2011-10-27
    • 2021-09-25
    • 2019-05-02
    • 2010-10-14
    • 1970-01-01
    相关资源
    最近更新 更多