新问题正如Asaph在上一个问题中提出的:正则表达式检查是否存在确切的字符串
我正在寻找一种方法来检查使用Regex或任何更好的方法建议在另一个字符串中是否存在精确的字符串匹配.我知道你告诉正则表达式匹配字符串开头或结尾的空格或任何其他非单词字符.但是,我不确切知道如何设置它.
搜索字符串: #t
应该匹配:
字符串1:Hello World, Nice to see you! #t
字符串2:#T Hello World, Nice to see you!
字符串3:Hello World, #t Nice to see you!
不匹配:
字符串1:Hello World, Nice to see you!
字符串2:Hello World, Nice to see you! #ta
字符串3:#tHello World, Nice to see you!
编辑2:添加了更多字符串示例
编辑1 for Serg555和SilentGhost:
搜索字符串中允许的字符:
#[_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.
Run Code Online (Sandbox Code Playgroud)
\b匹配单词边框,这是单词字符和非单词字符之间的边框.#是一个非单词字符,因此你的正则表达式只匹配这样的字符串:abc#t,或ab_#t.
此外,通常#不是正则表达式中的特殊字符,您不需要逃避它.
ETA:您的要求相当模糊:在它之前或之后可能有也可能没有空白字符.如果它是另一个字符串的一部分,我不希望它匹配; 比如一个词的一部分.
我想你需要提供一个可能的输入字符串的综合样本.因为,正如我的正则表达式一样正常.
| 归档时间: |
|
| 查看次数: |
1911 次 |
| 最近记录: |