【发布时间】:2025-11-30 16:05:02
【问题描述】:
我正在开展一个项目,该项目需要查找包含精确字符串或作为精确格式一部分的相同字符串的记录。换句话说,如果字符串是“hello world”,可能会说... 数据库中有 10 条记录具有此字段值,但该字段可能是以下之一:
"1. hello world"
"1 hello world"
"hello world"
"hello world (xyz)"
"1. hello world (xyz)"
"1 hello world (zyx)"
字符串“hello world”可以是任何东西,但前缀总是以数字开头或不存在,而后缀总是以括号结尾或不存在。
我以为我已经用以下正则表达式破解了它,但这并没有返回任何记录:
WHERE fieldname REGEXP '^([0-9]+.*)?[[:<:]]hello world[[:>:]](.*\))?$'
此外,我以前从未使用过 [[:<:>:]] 并假设这是要走的路,我不确定如何在之间转义文本,因为这将是 PHP生成?文档说要加倍转义的反斜杠,所以我猜 mysql_real_escape_string 还不够......?
如往常一样,任何建议都将不胜感激。
【问题讨论】: