php - 带有一些特殊字符的 Mysql 正则表达式字母数字

标签 php mysql regex

好吧,我已经做了一些关于它的噩梦,所以我向 Stackoverflow 的全能 hive 头脑低下我愚蠢的头。

UPD:我的任务参数已更改。我需要找到可能包含特殊字符的代码,例如圆括号 () 和/或 @、#、&、$。

因此代码可能如下所示:

"A", "Bb", "2C8", "A7(BO)19", B29H$, 29H(6JI)0# etc

问题是所有这些代码都是可选的。我试过像 Barmar(见回复 1)建议的那样,但稍微修改了 MySQL 查询:

SELECT *
FROM table
WHERE column REGEXP '^[a-z0-9\@\#\$\&()]*$' 
AND column LIKE CONCAT('%', '$v', '%')

如果我搜索“SLJ”或“S(LJ)”,它不会返回“S(LJ)9”或“09S(LJ)3$”

好吧,除了我 DNA 中一些真正重要的核苷酸序列可以让我更有效地使用大脑(或拥有大脑)之外,我在这个正则表达式或查询本身中缺少什么? 提前感谢任何人。

最佳答案

SELECT *
FROM table
WHERE column REGEXP '^[a-z0-9()]*$' /* code contains alphanumerics and parentheses */
AND column NOT REGEXP '[0-9]{3}' /* code does not contain >2 digits in a row */
AND column LIKE CONCAT('%', ?, '%') /* code contains the user input */

在哪里?与用户输入绑定(bind)(您应该使用 PDO 或 mysqli 准备语句)。

关于php - 带有一些特殊字符的 Mysql 正则表达式字母数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15959803/

相关文章:

Mysql正则表达式寻找链接

javascript - 如何在 JavaScript 中将名称放入标题大小写中?

php - 在不查看 MySQL 日志的情况下查看和调试准备好的 PDO 查询

mysql - 如何将查询从 MYSQL 更改为 SQL SERVER 的 LIMIT

python - 在 SQLAlchemy 中处理插入时重复的主键(声明式样式)

PHP PDO MySql - 插入偶尔 undefined variable

javascript 验证仅适用于字母值

php - 在 php 和 mysql 中获取特定月份和年份的记录

php - 在 Laravel Blade 文件中使用 css 样式标签

php - preg_match 给出的公式和字符?