I have a regex problem I can\'t seem to solve. I actually don\'t know if regex can do this, but I need to match a range of characters n times at the end of a pattern. eg. bl
In most regex implementations, you can accomplish this by referencing a capture group in your regex. For your example, you can use the following to match the same uppercase character five times:
blahblah([A-Z])\1{4}
Note that to match the regex n
times, you need to use \1{n-1}
since one match will come from the capture group.
You can use this pattern: blahblah([A-Z])\1+
The \1
is a back-reference to the first capture group, in this case ([A-Z])
. And the +
will match that character one or more times. To limit it you can replace the +
with a specific number of repetitions using {n}
, such as \1{3}
which will match it three times.
If you need the entire string to match then be sure to prefix with ^
and end with $
, respectively, so that the pattern becomes ^blahblah([A-Z])\1+$
You can read more about back-references here.
blahblah(.)\1*\b
should work in nearly all language flavors. (.)
captures one of anything, then \1*
matches that (the first match) any number of times.
blahblah([A-Z]|[a-z])\1+ This should help.