Php 忽略MySQL REGEXP查询中的常用词(和)

Php 忽略MySQL REGEXP查询中的常用词(和),php,mysql,regex,Php,Mysql,Regex,我正试图根据书名的第一个字母查询书名数据库。然而,我想忽略诸如“The”和“A”之类的常用词 因此,在搜索以字母“T”开头的书籍时 我对正则表达式不是很有经验,但到目前为止,这就是我的经验(其中$first_字母可以等于't') 这成功地匹配了以特定字母开头的书名,甚至在单词“a”或“the”之后,但不会忽略这些单词。因此,如果$first_letter='t',它将匹配上述两本书 我试过用谷歌搜索,但没有找到任何解决办法。任何帮助都将不胜感激 提前谢谢 Kevin了解了解您编写的正则表达式无效

我正试图根据书名的第一个字母查询书名数据库。然而,我想忽略诸如“The”和“A”之类的常用词

因此,在搜索以字母“T”开头的书籍时

我对正则表达式不是很有经验,但到目前为止,这就是我的经验(其中$first_字母可以等于't')

这成功地匹配了以特定字母开头的书名,甚至在单词“a”或“the”之后,但不会忽略这些单词。因此,如果$first_letter='t',它将匹配上述两本书

我试过用谷歌搜索,但没有找到任何解决办法。任何帮助都将不胜感激

提前谢谢


Kevin

了解

了解

您编写的正则表达式无效<代码>[]s用于表示所谓的字符类。在括号中输入的所有内容(有些字符可能需要转义,例如文字字符
[
]
)都被视为代表单个字符

重新阅读我的答案后,我意识到环顾四周不是一个好办法

您正在探索的功能被称为负前瞻、负前瞻或类似的变体。我不确定MySQL的正则表达式是否支持它,但我认为它不适合解决这个问题

或者,您可以使用如下所示的正则表达式:

^((a|the|of|and) )?[letter of interest]
分项数字:

  • 有两组
    • 最里面的组查找要忽略的单词的实例
    • 最外层的组只是在其末尾添加一个空格
  • 断言此组可能存在
    0
    1
    实例

您必须亲自将其翻译成MySQL正则表达式语法。抱歉。

您编写的正则表达式无效<代码>[]s用于表示所谓的字符类。在括号中输入的所有内容(有些字符可能需要转义,例如文字字符
[
]
)都被视为代表单个字符

重新阅读我的答案后,我意识到环顾四周不是一个好办法

您正在探索的功能被称为负前瞻、负前瞻或类似的变体。我不确定MySQL的正则表达式是否支持它,但我认为它不适合解决这个问题

或者,您可以使用如下所示的正则表达式:

^((a|the|of|and) )?[letter of interest]
分项数字:

  • 有两组
    • 最里面的组查找要忽略的单词的实例
    • 最外层的组只是在其末尾添加一个空格
  • 断言此组可能存在
    0
    1
    实例

您必须亲自将其翻译成MySQL正则表达式语法。我很抱歉。

我希望Mysql(或者我猜现在的Oracle)能摆脱他们的懒惰,为InnoDB表添加全文支持。不过,现在不太可能发生。Oracle不希望MySQL变得“更好”。我希望MySQL(或者我猜现在的Oracle)能够摆脱懒惰,向InnoDB表添加全文支持。不过,现在不太可能发生。Oracle不希望MySQL变得更好。谢谢你的回复!你在“分解”中描述的正是我想要做的,我只是不知道如何在正则表达式中构造它。这就是我最后使用的:
^((a | the | of | and))*[兴趣信]
谢谢你的回复!你在“分解”中描述的正是我想要做的,我只是不知道如何在正则表达式中构造它。这就是我最后使用的:
^((a | the | of | and))*[letter of intrest]
^((a|the|of|and) )?[letter of interest]