1

please help write a regular expression to for the following strings.

I have in database the following values

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

I want to pull only the following records:

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

I use

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

that pull me

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

How to change the expression to pull the desired result ?

EDIT

one additional case:

need reg expression for

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

the result should be

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 Answers 3

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

Here is the working EXAMPLE

Sign up to request clarification or add additional context in comments.

Comments

1

You forget the hyphen and also you should escape the dots.,

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

3 Comments

this will only match one or two part numbers. and the numbrs must be 1 digit only to match
how to match, let say: exercise-1034-678
exercise-([0-9]+|[1-9]+-[0-9]+)$
0
NOT REGEXP '[.]ans'

That should work on the set you provided. If that is not good enough for the entire list, then be more precise.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.