gpt4 book ai didi

regex - 如何使用正则表达式多次捕获相同的文本?

转载 作者:行者123 更新时间:2023-12-04 07:19:55 29 4
gpt4 key购买 nike

我需要在字符串之前匹配一个字符的出现。字符串可能出现多次,这意味着字符可能会改变。
测试对象:

§aUsername: Message, which happens to contain Username. §3Wow, Username again.
我想要三个组,因为 Username在主题中出现 3 次。
期望输出:
["Username", 'a']
["Username", 'a']
["Username", '3']
我写了这个正则表达式,但它只适用于 Username 的一次出现.
我的(失败的)尝试:
§(.).*?Username
编辑:该正则表达式完全忽略了 Username 的第二次出现,它应该与第一个字符匹配相同的字符( a )。
它的输出:
["Username", 'a']
["Username", '3']

最佳答案

如果支持后视中的量词(.NET、Pyton PiPy 模块或更新的 Javascript 引擎),则可以在后视中使用捕获组。
匹配将是用户名,组 1 将包含一个除换行符以外的任何字符。

(?<=§(.)[^§]*)Username
  • (?<=积极向后看,断言左边是什么
  • §(.)匹配 §并在 中捕获第 1 组 一个任意字符
  • [^§]*匹配除 § 之外的任何字符,使用否定字符类,任意次数

  • )近距离观察
  • Username从字面上匹配

  • Regex demo

    关于regex - 如何使用正则表达式多次捕获相同的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68569025/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com