mysql REGEXP 能识别 \w 么
时间: 2023-08-04 09:06:42 浏览: 84
MySQL中的`REGEXP`操作符支持POSIX正则表达式标准,而POSIX标准中定义的元字符集不包括`\w`。因此,在MySQL中,`REGEXP`操作符不能识别`\w`这个元字符。
如果需要匹配单词字符,可以使用`[[:alnum:]]`表示匹配任意一个字母或数字字符,或者使用`[A-Za-z0-9]`表示匹配所有的字母和数字字符。例如,查询所有包含字母和数字的用户名可以使用以下语句:
```
SELECT * FROM users WHERE username REGEXP '[[:alnum:]]+';
```
这个语句会查询所有用户名中包含至少一个字母或数字的记录。
相关问题
mysql regexp
MySQL REGEXP 是一种用于匹配正则表达式的函数。它可以在 MySQL 中进行模式匹配,以便在字符串中查找特定的模式。REGEXP 函数使用 POSIX 模式匹配语法,它可以检查一个字符串是否匹配一个模式,如果匹配则返回 1,否则返回 0。
以下是使用 MySQL REGEXP 的基本语法:
```
SELECT * FROM table_name WHERE column_name REGEXP 'pattern';
```
其中,`table_name` 是要查询的表的名称,`column_name` 是要在其中进行模式匹配的列的名称,`pattern` 是要匹配的正则表达式模式。
例如,要查询一个表中所有包含字母 "a" 的行,可以使用以下语句:
```
SELECT * FROM table_name WHERE column_name REGEXP 'a';
```
这将返回所有包含字母 "a" 的行。
还可以使用正则表达式元字符和修饰符来创建更复杂的模式匹配条件,例如:
- `.` 匹配任何单个字符
- `*` 匹配前面的字符零次或多次
- `+` 匹配前面的字符一次或多次
- `?` 匹配前面的字符零次或一次
- `|` 匹配两个模式之一
- `[]` 匹配括号内任意一个字符
- `[^]` 匹配不在括号内的任意一个字符
- `()` 将模式分组
例如,要查询一个表中所有以字母 "a" 开头的行,可以使用以下语句:
```
SELECT * FROM table_name WHERE column_name REGEXP '^a';
```
这将返回所有以字母 "a" 开头的行。
MySQL regexp
MySQL REGEXP 是一种用于匹配正则表达式的函数。它可以在 MySQL 中进行模式匹配,以便在字符串中查找特定的模式。REGEXP 函数使用 POSIX 模式匹配语法,它可以检查一个字符串是否匹配一个模式,如果匹配则返回 1,否则返回 0。
以下是使用 MySQL REGEXP 的基本语法:
```
SELECT * FROM table_name WHERE column_name REGEXP 'pattern';
```
其中,`table_name` 是要查询的表的名称,`column_name` 是要在其中进行模式匹配的列的名称,`pattern` 是要匹配的正则表达式模式。
例如,要查询一个表中所有包含字母 "a" 的行,可以使用以下语句:
```
SELECT * FROM table_name WHERE column_name REGEXP 'a';
```
这将返回所有包含字母 "a" 的行。
还可以使用正则表达式元字符和修饰符来创建更复杂的模式匹配条件,例如:
- `.` 匹配任何单个字符
- `*` 匹配前面的字符零次或多次
- `+` 匹配前面的字符一次或多次
- `?` 匹配前面的字符零次或一次
- `|` 匹配两个模式之一
- `[]` 匹配括号内任意一个字符
- `[^]` 匹配不在括号内的任意一个字符
- `()` 将模式分组
例如,要查询一个表中所有以字母 "a" 开头的行,可以使用以下语句:
```
SELECT * FROM table_name WHERE column_name REGEXP '^a';
```
这将返回所有以字母 "a" 开头的行。
阅读全文