So my string looks like this:
Basic information, advanced information, super information, no information
I would like to capture everything up to second comma so I get:
Basic information, advanced information
What would be the regex for that?
I tried: (.*,.*),
but I get
Basic information, advanced information, super information,
To match any character except a list of excluded characters, put the excluded charaters between [^ and ] . The caret ^ must immediately follow the [ or else it stands for just itself. The character '. ' (period) is a metacharacter (it sometimes has a special meaning).
This will capture up to but not including the second comma:
[^,]*,[^,]*
English translation:
[^,]*
= as many non-comma characters as possible
,
= a comma
[^,]*
= as many non-comma characters as possible
[...]
is a character class. [abc]
means "a or b or c", and [^abc]
means anything but a or b or c.
You could try ^(.*?,.*?),
The problem is that .*
is greedy and matches maximum amount of characters. The ? behind * changes the behaviour to non-greedy.
You could also put the parenthesis around each .*? segment to capture the strings separately if you want.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With