mysql - REGEX 在 MySQL 中查找包含左括号和右括号的行

标签 mysql regex

我试过:

....WHERE fieldname REGEXP '.*\(.*\).*';

但这会返回表中的每条记录。

最佳答案

在 REGEXP 模式中转义正则表达式特殊元字符时,您应该使用双反斜杠。此外,由于 REGEXP 还会找到部分匹配项,因此您不需要在开始/结束处使用 .*

因此,您可以将表达式固定为

WHERE fieldname REGEXP '\\(.*\\)';

或者只使用 LIKE,其中 % 匹配任意数量的任意字符(但与 REGEXP 不同,必须匹配整个条目):

WHERE fieldname LIKE '%(%)%';

A MySQL fiddle :

DROP TABLE IF EXISTS t;
CREATE TABLE t (word varchar(255));
INSERT INTO t (word)
VALUES
    ('test (here)'),
    ('test (here) test'),
    ('(here) test'),
    ('test no'),
    ('no test');

SELECT * FROM t WHERE word REGEXP '\\(.*\\)';

SELECT * FROM t WHERE word LIKE '%(%)%';

enter image description here

要获取像 text ) 和 ( here 这样的条目,您可以使用

SELECT * FROM t WHERE word REGEXP '\\(.*\\)|\\).*\\(';

SELECT * FROM t WHERE word LIKE '%(%)%' OR word LIKE '%)%(%';

参见 another fiddle .

关于mysql - REGEX 在 MySQL 中查找包含左括号和右括号的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43228398/

相关文章:

c# - 如何匹配字符串中任意字符的偶数个?

javascript - 在javascript匹配中获取正则表达式的单独部分

c# - Regex 在 #regex pork 工作,但不在 .net 中工作

mysql - 使用关联 Sequelize 无效值 [object Promise]

php - mysql更新设置所有字段相同

javascript - 如何在 JavaScript 中获取标签的 ID

mysql 每日报价查询 : cope with missing id's

javascript - 如何使用正则表达式查找标签内的文字字符串

mysql - 如何避免子查询产生多个结果

javascript - 仍然无法正常工作 - 功能 : letter to next letter(i. e。 a->b) 并将元音大写