My question is related with lookbehinds, I want to find all the first numbers after the word "this", I have the following data:
188282 this is an example of a number 12345 and 54321
188282 this is an example of a number 1234556
this is an example of a number 1234556
187293 this is another example of a number 74893 and 83978
Pattern:
this is an example of a number \d+
Output:
188282 this is an example of a number 12345 and 54321
188282 this is an example of a number 1234556
this is an example of a number 1234556
187293 this is another example of a number 74893 and 83978
To match all of them I used a more generic approach as I know I want the first number after the word “this”
Pattern:
this[^\d]+\d+
Output:
188282 this is an example of a number 12345 and 54321
188282 this is an example of a number 1234556
this is an example of a number 1234556
187293 this is another example of a number 74893 and 83978
Im tring to use lookbehinds now, as I don’t want to include part of the pattern in the results. Following my first approach:
Pattern:
(?<=this is an example of a number )\d+
Output:
188282 this is an example of a number 12345 and 54321
188282 this is an example of a number 1234556
this is an example of a number1234556
187293 this is another example of a number 74893 and 83978
Looks I’m getting there, I want to cover the last case as before, so I tried my second approach.
Pattern:
(?<=this[^\d]+)\d+
Output:
188282 this is an example of a number 12345 and 54321
188282 this is an example of a number 1234556
this is an example of a number 1234556
187293 this is another example of a number 74893 and 83978
Doesn’t match anything
Is it possible to have patterns inside lookbehinds? Am I trying a wrong approach to this problem? It’s a bit long but I wanted to show you what I tried so far instead of just asking the question
Thanks in advance
Yes, you can use patterns inside lookbehinds, but that you can't do in most flavor of regex is to have a variable length lookbehind. In other words, you can't use a quantifier (but a fixed quantifier like {n} is allowed) inside a lookbehind. But some regex flavour allows you to use the alternation | or a limited (like in java) quantifier {1,n}.
With .net languages variable length lookbehinds are allowed.
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