gpt4 book ai didi

php - 正则表达式检查是否存在确切的字符串,包括#

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:37:07 25 4
gpt4 key购买 nike

新问题正如 Asaph 在上一个问题中所建议的:Regex to check if exact string exists

我正在寻找一种方法来使用 Regex 或建议的任何更好的方法来检查另一个字符串中是否存在完全匹配的字符串。我知道您告诉正则表达式匹配字符串开头或结尾的空格或任何其他非单词字符。但是,我不知道如何设置它。

搜索字符串:#t

应该匹配:
字符串 1:Hello World,很高兴见到你! #t
字符串 2:#T Hello World,很高兴见到你!
字符串 3:Hello World,#t 很高兴见到你!

不应该匹配:
字符串 1:Hello World,很高兴见到你!
字符串 2:Hello World,很高兴见到你! #ta
字符串 3:#tHello World,很高兴见到你!

编辑 2:添加了更多字符串样本

为 Serg555 和 SilentGhost 编辑 1:
搜索字符串中允许的字符:
#[_a-zA-Z0-9]
# 是可选的。

要求:搜索字符串可以在主题中的任何字符位置。在它之前或之后可能有也可能没有空白字符。如果它是另一个字符串的一部分,我不希望它匹配;例如单词的一部分。

为了这个问题:我想我会使用这种模式来做到这一点:/\b\#t\b/gi
但是,这并没有像我预期的那样返回结果。

我能够找到与普通字符串(不存在 # 的字符串)完全匹配的方法:

/\b{$search_string}\b/gi

附加信息:这将在 PHP 5 中使用

最佳答案

您只需要:

/(?:^|\s)#t\b/i           #t is in the beginning or preceded by space.

\b 匹配word border,它是单词字符和非单词字符之间的边界。 # 是一个非单词字符,因此您的正则表达式只匹配这样的字符串:abc#tab_#t

此外,通常 # 不是正则表达式中的特殊字符,您不需要对它进行转义。

ETA:您的要求相当模糊:在它之前或之后可能有也可能没有空白字符。如果它是另一个字符串的一部分,我不希望它匹配;例如单词的一部分。

  1. 前后没有空格字符?所以会有一个非空白字符?
  2. 但是它是如何与其他字符串分开的呢?允许使用哪些字符?

我认为您需要提供可能的输入字符串的综合示例。因为,我的正则表达式工作得很好。

关于php - 正则表达式检查是否存在确切的字符串,包括#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2827992/

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