gpt4 book ai didi

php - 为什么 "?[^a-z\-\+]hit[^a-z\-\+]"与 "hit"不匹配(第一个字符没有空格?)

转载 作者:行者123 更新时间:2023-12-02 21:28:43 29 4
gpt4 key购买 nike

我又遇到了一个正则表达式问题 - 我需要测试一个字符串是否出现模式 - 它可以隐藏在字符串中的某个位置 - 就在前面,前面但前面有一个空格,中间的某个地方或在结束,也许在末尾后面跟着一个空格。

我认为这个正则表达式可能会起作用 - 但它不起作用:

/ ?[^a-z\-\+]hit[^a-z\-\+]/

因为它只显示前面有空白的第一个命中 - 因为我用问号标记了第一部分 - 我认为第一个字符也可能被省略 - 请让我再次回到轨道并告诉我我在哪里我错了...

我在这里做了一个 fiddle :http://regexr.com/38lcq (编辑:我刚刚尝试了“Niet the Dark Absol”的正则表达式 - 更好,但仍然提供了比我想要的更多的匹配......)

最佳答案

它不起作用,因为您的[^a-z\-+]要求在您的“目标”击中之前有一个字符。

尝试:/\bhit\b/ - 使用\b表示字边界。

您也可以更具体:

/(?<![a-z0-9+-])hit(?![a-z0-9+-])/i

这使用负向后查找和向前查找来排除您不想要的内容。

关于php - 为什么 "?[^a-z\-\+]hit[^a-z\-\+]"与 "hit"不匹配(第一个字符没有空格?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22816667/

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