gpt4 book ai didi

javascript - 正则表达式查询帮助 - 回顾

转载 作者:行者123 更新时间:2023-11-29 15:43:35 25 4
gpt4 key购买 nike

这有点相关:Regular Expression - Formatting text in a block - IM而是一个不同的问题。

根据以下条件寻找 - 的换行文本:

条件:

  • token 可以在行首或行尾
  • token 必须由空格或一个或多个符号包围:{.,!@#$....}。
    • 不能是围绕相关 - 对的普通字符 [a-zA-Z]。
    • 参见示例测试 3 ...w-谢谢您-
    • 测试 4 和 5 成功,因为 - 被 [^a-zA-Z] 包裹
  • token 后面不能跟第一个 - 上的空格或最后一个 - 之前的空格
    • “-Wow -”将不匹配,因为结束 - 前面有一个空格。
    • 参见示例测试 6 和 7

对于正则表达式的前面,我需要:(^|[\s\W]+)
结尾将是:($|[\s\W]+)

我有当前表达式,但由于在找到第一个 -

后转义条件停止,它失败了
   (^|[\s\W]+)-([^\s][^-]*)-($|[\s\W]+)

示例测试字符串为:

  1. (全部。):-哇-谢谢-。
  2. (哇):-哇-谢谢-!
  3. (NIL):- 哇-谢谢-。
  4. (谢谢):-哇!-谢谢-
  5. (谢谢):-哇-谢谢-
  6. (全部):-哇-谢谢-
  7. (NIL):-哇-谢谢-

这需要回头看吗? (我是正则表达式新手,所以请多多包涵)还是我的中间条件完全错误。

非常感谢!
姆沃尔夫。

最佳答案

尝试更简单的中间表达式。

(^|[\s\W]+)-(.*?)-($|[\s\W]+)
^^^

非贪婪通配符匹配将捕获匹配以下 -($|[\s\W]+) 所需的最小字符串。


编辑。 好的,我明白为什么这是错误的。您希望非空格字符分别紧跟在开头和结尾的破折号之后。所以试试这个:

(^|[\s\W]+)-(\S.*?\S)-($|[\s\W]+)
^^ ^^

关于javascript - 正则表达式查询帮助 - 回顾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15288276/

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