如何在regex101中仅匹配首次出现text2的行内所有text2
实现方法
在regex101中使用PCRE2引擎,按以下步骤操作即可达成需求:
- 查找正则表达式:
(?:^(?:(?!text2).)*\n)*\K(?:(?!\n).)*?\Ktext2|\G(?!^)(?:(?!\n).)*?\Ktext2
- 替换内容:
**text2**
正则逻辑说明
(?:^(?:(?!text2).)*\n)*:跳过所有不包含text2的行(包括空行),精准定位到第一个出现text2的行开头。\K:重置匹配起点,确保前面的内容不会被替换,只针对后续的text2操作。(?:(?!\n).)*?\Ktext2:匹配当前行内第一个text2,仅捕获text2本身用于替换。\G(?!^):锚定上一次匹配结束的位置,确保后续所有匹配都限制在同一行内,从而捕获该行剩余的所有text2。
内容的提问来源于stack exchange,提问作者Mario Palumbo
相关产品推荐
相关产品推荐

