带数字短划线的mysql正则表达式搜索字符串

时间:2016-03-22 09:21:24

标签: mysql regex

请帮助为以下字符串写一个正则表达式。

我在数据库中有以下值

results.dr_phil_app_progress._tapes.data.exercise-1
results.dr_phil_app_progress._tapes.data.exercise-1-1
results.dr_phil_app_progress._tapes.data.exercise-2
results.dr_phil_app_progress._tapes.data.exercise-2-1
results.dr_phil_app_progress._tapes.data.exercise-2-2
results.dr_phil_app_progress._tapes.data.exercise-2-3
results.dr_phil_app_progress._tapes.data.exercise-3
results.dr_phil_app_progress._tapes.data.exercise-1.ans1
results.dr_phil_app_progress._tapes.data.exercise-1-1.ans1
results.dr_phil_app_progress._tapes.data.exercise-2.ans1
results.dr_phil_app_progress._tapes.data.exercise-2.ans2

我想只提取以下记录:

results.dr_phil_app_progress._tapes.data.exercise-1
results.dr_phil_app_progress._tapes.data.exercise-1-1
results.dr_phil_app_progress._tapes.data.exercise-2
results.dr_phil_app_progress._tapes.data.exercise-2-1
results.dr_phil_app_progress._tapes.data.exercise-2-2
results.dr_phil_app_progress._tapes.data.exercise-2-3
results.dr_phil_app_progress._tapes.data.exercise-3

我用

^results.dr_phil_app_progress._tapes.data.exercise-([0-9]|[1-9][0-9])$

拉我的

results.dr_phil_app_progress._tapes.data.exercise-1
results.dr_phil_app_progress._tapes.data.exercise-2
results.dr_phil_app_progress._tapes.data.exercise-3

如何更改表达式以获得所需的结果?

修改

另外一个案例:

需要reg表达

results.dr_phil_app_progress._tapes.data.exercise-1
results.dr_phil_app_progress._tapes.data.exercise-1-1.id
results.dr_phil_app_progress._tapes.data.exercise-2.text
results.dr_phil_app_progress._tapes.data.exercise-3-1
results.dr_phil_app_progress._tapes.data.person-1
results.dr_phil_app_progress._tapes.data.person-1-1
results.dr_phil_app_progress._tapes.data.person-2

结果应该是

results.dr_phil_app_progress._tapes.data.exercise-1
results.dr_phil_app_progress._tapes.data.exercise-3-1
results.dr_phil_app_progress._tapes.data.person-1
results.dr_phil_app_progress._tapes.data.person-1-1
results.dr_phil_app_progress._tapes.data.person-2

3 个答案:

答案 0 :(得分:1)

你忘了连字符,你也应该逃避点。

"^results\\.dr_phil_app_progress\\._tapes\\.data\\.exercise-([0-9]|[1-9]-[0-9])$"

答案 1 :(得分:1)

^results.dr_phil_app_progress._tapes.data.exercise-([0-9-]*)$

这是工作EXAMPLE

答案 2 :(得分:0)

NOT REGEXP '[.]ans'

这应该适用于你提供的套装。如果这对整个列表来说不够好,那就更准确了。