Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I match on, but exclude a regex pattern?

I have this URL:

http://example.com/createSend/step4_1.aspx?cID=876XYZ964D293CF&snap=true&jlkj=kjhkjh&

And this regex pattern:

cID=[^&]* 

Which produces this result:

cID=87B6XYZ964D293CF 

How do I REMOVE the "cID="?

Thanks

like image 755
Adam Avatar asked Jun 09 '10 05:06

Adam


People also ask

What does \+ mean in regex?

Example: "a\+" matches "a+" and not a series of one or "a"s. ^ the caret is the anchor for the start of the string, or the negation symbol. Example: "^a" matches "a" at the start of the string. Example: "[^0-9]" matches any non digit.


2 Answers

You can either use lookbehind (not in Javascript):

(?<=cID=)[^&]* 

Or you can use grouping and grab the first group:

cID=([^&]*) 
like image 50
Kerry Jones Avatar answered Sep 30 '22 19:09

Kerry Jones


Generally speaking, to accomplish something like this, you have at least 3 options:

  • Use lookarounds, so you can match precisely what you want to capture
    • No lookbehind in Javascript, unfortunately
  • Use capturing group to capture specific strings
    • Near universally supported in all flavors
  • If all else fails, you can always just take a substring of the match
    • Works well if the length of the prefix/suffix to chop is a known constant

References

  • w3schools - jsref - substring
  • regular-expressions.info/Capturing groups and Lookarounds
    • Flavor comparison

Examples

Given this test string:

i have 35 dogs, 16 cats and 10 elephants 

These are the matches of some regex patterns:

  • \d+ cats -> 16 cats (see on rubular.com)
  • \d+(?= cats) -> 16 (see on rubular.com)
  • (\d+) cats -> 16 cats (see on rubular.com)
    • Group 1 captures 16

You can also do multiple captures, for example:

  • (\d+) (cats|dogs) yields 2 match results (see on rubular.com)
    • Result 1: 35 dogs
      • Group 1 captures 35
      • Group 2 captures dogs
    • Result 2: 16 cats
      • Group 1 captures 16
      • Group 2 captures cats
like image 40
polygenelubricants Avatar answered Sep 30 '22 19:09

polygenelubricants