Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

How to find specific matches in a string using regex

I have strings like

View_Export_US_Horizontals_Ultimate_DirectionalSurveys

I want to extract matches like

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

[["US_Horizontals", "Ultimate", "DirectionalSurveys"]] //String Ultimate may or may not be present

I have the following RegEx, /^View_Export_(US\_(GoM|Horizontals|Onshore))((_Ultimate)?)_(\w+)/

but i get the following matches array

[["US_Horizontals", "Horizontals", "_Ultimate", "_Ultimate", "DirectionalSurveys"]]

How do i skip strings like Horizontals & _Ultimate and just get an array like

[["US_Horizontals", "Ultimate", "DirectionalSurveys"]]

Or

[["US_Horizontals", "DirectionalSurveys"]]

>Solution :

You can use

\AView_Export_(US_(?:GoM|Horizontals|Onshore))(?:_(Ultimate))?_(\w+)

See the regex demo. Details:

  • \A – start of string (^ in Ruby regex means start of any line)
  • View_Export_ – a fixed string
  • (US_(?:GoM|Horizontals|Onshore)) – Group 1: US_ string and then either GoM, Horizontals or Onshore words
  • (?:_(Ultimate))? – an optional sequence of an underscore and an Ultimate word
  • _ – an underscore
  • (\w+) – Group 3: any one or more word chars.

See the Ruby demo:

string = "View_Export_US_Horizontals_Ultimate_DirectionalSurveys"
rx = /\AView_Export_(US_(?:GoM|Horizontals|Onshore))(?:_(Ultimate))?_(\w+)/
one, two, three = string.match(rx).captures

puts one   #=> US_Horizontals
puts two   #=> Ultimate
puts three #=> DirectionalSurveys
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading