【问题标题】:Regex to check if exact string exists正则表达式检查是否存在确切的字符串
【发布时间】:2010-05-13 03:41:33
【问题描述】:

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

搜索字符串: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 中使用

【问题讨论】:

    标签: php regex exact-match


    【解决方案1】:

    您对/\bt\b/gi 的建议将起作用,并且可能是可行的方法。您已正确使用 \b 作为单词边界。您正在使用全局和不区分大小写的修饰符,它将在这两种情况下找到所有匹配项。简单,直接,干净。看看你已经想出的就行了。

    【讨论】:

    • @Jayrox:# 不是“单词字符”,因此\b 不可能将其视为单词边界。引入# 足以改变您的问题,以至于我认为这是一个新问题。请发布一个关于匹配#t的新问题。
    【解决方案2】:

    我觉得不错。您可能需要检查 the \b assertion 的确切含义,以确保它正是您所需要的。

    如果没有更详细的描述,无法真正说出这种模式“不起作用”的任何情况,但\b 可以很好地用于您的测试用例。

    【讨论】:

      【解决方案3】:

      老话说给一个人一个正则表达式,他快乐一天,教他写正则表达式,他一生快乐(或类似的东西)试试“regulator "

      它提供了一个 GUI 和一些很好的例子来满足 reg exp 的需求。

      【讨论】:

        猜你喜欢
        • 2011-02-19
        • 1970-01-01
        • 2015-03-11
        • 2012-08-05
        • 1970-01-01
        • 2023-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多