gpt4 book ai didi

regex - 匹配非单词字符,直到找到非单词字符为止

转载 作者:行者123 更新时间:2023-12-05 04:40:51 25 4
gpt4 key购买 nike

我想从字符串的开头和结尾位置匹配任何非单词字符,但是如果它遇到了一个包含字符串的非单词字符,我希望它停止匹配就在它之前。

我创建了以下正则表达式模式:

^\W+(?!(\W+)((?!\1).)+\1)?

我希望它匹配如下图所示,因为它会匹配字符串开头的任何非单词字符,直到它到达否定前瞻模式中的封闭引号:

!@#$%""<>test (string")-+/;,

但结果是这样的:

!@#$%""<>test (string")-+/;,

Regex101 Demo

我做错了什么?

最佳答案

你需要使用

^\W*?(\W)(?=.*?\b\1\W*$)

参见 regex demo . 详细信息:

  • ^ - 字符串的开始
  • \W*? - 零个或多个非单词字符,尽可能少
  • (\W) - 捕获到第 1 组的非单词字符
  • (?=.*?\b\1\W*$) - 与紧随其后的位置匹配的正向前瞻
    • .*? - 除换行字符外的任何零个或多个字符,尽可能少
    • \b - 单词边界
    • \1 - 与第 1 组相同的值
    • \W* - 零个或多个非单词字符
    • $ - 字符串结尾。

关于regex - 匹配非单词字符,直到找到非单词字符为止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70191978/

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