gpt4 book ai didi

javascript - 匹配某个标点符号可以存在于正则表达式中的字符串内部或之后的字符串

转载 作者:行者123 更新时间:2023-12-03 23:38:59 25 4
gpt4 key购买 nike

我正在尝试使用正则表达式和 JavaScript 检查字符串中是否存在一个单词,但我正在努力让它正确。
匹配的字符串前面只能有一个空格或什么都没有。匹配的字符串后面不能有字母数字字符或标点符号。匹配的字符串后面不能有字母数字字符,只有 ! , , , . ,一个空格,或者什么都没有。示例如下!
目前我的正则表达式如下所示:\w*(?<![^ ])\bHello\b如果你测试 Hello , Hello! , HelloHello 它按预期返回true。
如果你测试 .Hello , aHelloHelloa它按预期返回 false 。
但是我有两个问题:

  • 如果你通过它返回true Hello: , Hello? , Hello)等等,这不是我想要的,只有 ! , , , .应该被允许。
  • 它不适用于带有标点符号的字符串 - 我需要检查字符串 D: , :D , 和 <3存在于一句话中。我相信这是由于我使用了 \b

  • 我尝试转换 \b深入了解它在引擎盖下的作用并对其进行修改,但我无法让它按我想要的方式工作,所以我转向了 StackOverflow。我可以对字母数字字符串使用正则表达式,对带有 : 等符号的字符串使用另一个正则表达式。和 < .或者,如果您认为最好只使用 JavaScript 函数切换到手动检查,那么也可以。
    谢谢你的帮助。

    最佳答案

    您可以使用

    (?<!\S)Hello(?=[!,.\s]|$)
    regex demo .
    细节
  • (?<!\S) - 左侧空白边界
  • Hello - 一些词
  • (?=[!,.\s]|$) - 需要 ! 的正向前瞻, , , . , 空格或字符串结尾紧挨当前位置的右侧。
  • 关于javascript - 匹配某个标点符号可以存在于正则表达式中的字符串内部或之后的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67140473/

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