mysql选择与“句号”类似的regexp

mysql选择与“句号”类似的regexp,mysql,regex,Mysql,Regex,让小sql选择: select * from import_daten WHERE lastname REGEXP 'dipl\.|dr\.'; 只想用ing过滤行。还有迪普。但通过这句话,我也得到了一些人的支持,比如姓Abendroth的人。因为医生的名字 同样的道理 select * from import_daten WHERE lastname REGEXP 'dipl.|dr.'; 如何在regexp中包含正确的句号?我想您需要这个 select * from import_dat

让小sql选择:

select * from import_daten WHERE lastname REGEXP 'dipl\.|dr\.';
只想用ing过滤行。还有迪普。但通过这句话,我也得到了一些人的支持,比如姓Abendroth的人。因为医生的名字

同样的道理

select * from import_daten WHERE lastname REGEXP 'dipl.|dr.';
如何在regexp中包含正确的句号?

我想您需要这个

select * from import_daten WHERE lastname REGEXP '(dipl\.)|(ing\.)';

您可能需要确保模式位于单词边界处。MySQL的正则表达式语法具有特殊的字符序列:

select * from import_daten WHERE lastname REGEXP '[[:<:]](dipl\.|dr\.)[[:>:]]';
看。它几乎是页面上用户评论之前的最后一项

REGEXP '(dipl|dr)[.]'
注意单词的开头/结尾:

mysql> SELECT 'dr.' REGEXP 'dr[.][[:>:]]', 'dr.' REGEXP 'dr[.]';
+-----------------------------+----------------------+
| 'dr.' REGEXP 'dr[.][[:>:]]' | 'dr.' REGEXP 'dr[.]' |
+-----------------------------+----------------------+
|                           0 |                    1 |
+-----------------------------+----------------------+
注意它是如何失败的吗?那是因为。不是可以存在于“单词”中的字符

而且,我用[.]代替\。由于转义转义字符的问题-在某些情况下,您需要\\。;在其他情况下,您可能需要\\\\\。。太令人困惑了


如有必要,可以使用“word开始”:REGEXP[[:我看不出阿本德罗斯能和那个正则表达式相配。哦……对不起,我不是指ing。我是指dr。我在问题中改变了它。所以用dipl.| ing。你是对的,那不能和阿本德罗斯相配,但dr.相配。嗯,谢谢,但不是真的。有了这个,我也去拿阿本德罗斯的,但我只想要阿本罗斯博士。