Diese Konversation wurde aufgrund von Inaktivität geschlossen. Bitte erstellen Sie einen neuen Post.
Level 1
Level 2
Melden Sie sich an, um alle Badges zu sehen
Diese Konversation wurde aufgrund von Inaktivität geschlossen. Bitte erstellen Sie einen neuen Post.
Hi All,
Having some difficulties figuring out how to create regex that adjusts to the number of groups.
I can have any number of parts ranging from 1 to 4
strings:
events:company-conferences/company-user-conference/2018
events:company-conferences/company-user-conference
events:company-conferences
I tried this regex however it only returns the correct values if it has 4 capture groups, no more no less.
^([^\:]*)\:([^\:]*)\/([^\:]*)\/([^\:]*)
I tried the below regex however it does the same
^(.+)\:(.+)\/(.+)\/(.+)
is there regex logic that is flexible to the number of capture groups in a string? I would like to capture string that have groups up to 4 but may have 3 or 2.
any help would be highly appreciated.
thanks
Gelöst! Gehe zu Lösung.
Something like : ^(.+)\:(.+?)(\/|$)(.*?)(\/|$) (repeating (.*?)(\/|$) to the number of possible results will get you in even numbered fields the results you want. So for 1-4:
^(.+)\:(.+?)(\/|$)(.*?)(\/|$)(.*?)(\/|$)(.*?)(\/|$)
You can see the results here: https://regexr.com/3sjh5
I do something similar in which I essentially have a different rule for either 5 or 6 fields. Not sure if there is a more robust way but this should be easy to build from for 2/3/4 fields. As an FYI my deliminator is an underscore.
^((.+)\_(.+)\_(.+)\_(.+)\_(.+)\_(.+)|(.+)\_(.+)\_(.+)\_(.+)\_(.+))$ |
Something like : ^(.+)\:(.+?)(\/|$)(.*?)(\/|$) (repeating (.*?)(\/|$) to the number of possible results will get you in even numbered fields the results you want. So for 1-4:
^(.+)\:(.+?)(\/|$)(.*?)(\/|$)(.*?)(\/|$)(.*?)(\/|$)
You can see the results here: https://regexr.com/3sjh5
Check out this thread see if it helps.
Zugriffe
Antworten
Likes gesamt
Zugriffe
Likes
Antworten
Zugriffe
Likes
Antworten
Zugriffe
Likes
Antworten
Zugriffe
Likes
Antworten