我正在寻找有关MYSQL查询的正则表达式的一些帮助。我对表达方式很陌生,并且让自己彻底迷茫。
我的数据库单元格看起来像这样
1314{{Here is some data}}1213{{More data here}}1112{{Data ahoy}}
我正在尝试编写一个表达式,该表达式将尝试匹配数据集,但仅限于括号内年份内的数据。
例如,假设 $ year = 1314 和 $ term =“ahoy”。
使用以下REGEXP:
$year\{\{.* $term.*\}\}
它返回一个匹配 - 因为它匹配1112前缀数据集的最终“}}”。我不希望它这样做,但尽管阅读了这个贪婪/否定的业务,我无法使语法工作。 实现我追求目标的最佳途径是什么?
答案 0 :(得分:4)
尝试:
$year\{\{[^}]*$term[^}]*\}\}
[^}]*
匹配任何不是}
的内容,以便在第一次出现}
.*
贪婪,因此它会与最后一次出现匹配,因此.*\}\}
与最后一组}}
匹配,使其非贪婪您可以使用?
之类的.*?\}\}
但我更喜欢使用否定。