正则表达式问题

时间:2011-09-16 09:30:56

标签: regex

我遇到正则表达式问题。我在查询中使用正则表达式,如下所示。

SELECT *
FROM ad
WHERE platform_specific_selection
REGEXP '[\|]{0,1}19[\|]{0,1}'

它给我一些错误的结果如下所示。

  1. 19|21|
  2. 0|19|20|22|
  3. 19|
  4. 0|919|
  5. 我希望使用正则表达式匹配完全19,我不希望结果中有0|919|这个值。任何人都可以给我相同的正确的正则表达式吗?

2 个答案:

答案 0 :(得分:3)

这应该有效:

select * from t where a REGEXP '(^|[|])19([|]|$)';

(我们的想法是在左侧允许|或字符串开头,在右侧允许|或字符串结尾。)

答案 1 :(得分:0)

为什么正则表达式,LIKE就足够了

SELECT *
FROM ad
WHERE platform_specific_selection
LIKE '%|19|%'