我正在寻找一种方法,使用Regex或建议的任何更好的方法检查另一个字符串中是否存在精确的字符串匹配。我知道你告诉正则表达式匹配字符串开头或结尾的空格或任何其他非单词字符。但是,我不确切知道如何设置它。
搜索字符串:t
字符串1:Hello World, Nice to see you! t
字符串2:Hello World, Nice to see you!
字符串3:T Hello World, Nice to see you!
我想使用搜索字符串并将其与字符串1,字符串2和字符串3进行比较,并且仅从字符串1和字符串3获得肯定匹配,但不从字符串2获得。
要求:
搜索字符串可以位于主题中的任何字符位置
在它之前或之后可能有也可能没有空白字符
如果它是另一个字符串的一部分,我不希望它匹配;比如一个词的一部分。
为了这个问题:
我想我会用这种模式做到这一点:/\bt\b/gi
/\b{$search_string}\b/gi
这看起来不错吗?可以做得更好吗?这种模式不起作用的任何情况? 附加信息:这将在PHP 5中使用
答案 0 :(得分:2)
你对/\bt\b/gi
的建议是有效的,也许是可行的方法。您已正确使用\b
作为字边界。您正在使用全局和不区分大小写的修饰符,它们将在两种情况下都找到所有匹配项。简单,直接,干净。只看你已经想到的东西。
答案 1 :(得分:2)
对我来说很好看。您可能需要检查the \b assertion的确切含义,以确保它正是您所需要的。
如果没有更详细的描述,这个模式“无法正常工作”的任何情况都无法确定,但\b
可以适用于您的测试用例。
答案 2 :(得分:1)
根据古老的说法,给一个男人一个表达,他很高兴一天,教他写正则表达,他很幸福一生(或者那样的东西)尝试“{{3} } R“
它为reg exp需要提供了一个GUI和一些很好的例子。