Say I have following line in my file:
[ "$(${Git} branch --show-current)" != "master" ] && ${Git} checkout -f "${branch}"
When I use regex git.*?checkout it selects following portion:
Git} branch --show-current)" != "master" ] && ${Git} checkout
and not
Git} checkout
Non-greedy regex not so all the time
NeOnD
#1
0 Likes
deathaxe
#2
Maybe not what you expect, but still correct.
.*? does not provide any restrictions for content between git and checkout. So the engine finds first git and than lazily looks for the next occurance of checkout.
The question mark would make a difference in case checkout appeared multiple times.
Example:
[ "$(${Git} branch --show-current)" != "master" ] && ${Git} checkout -f "${checkout}"
| pattern | result |
|---|---|
git.*?checkout |
Git} branch --show-current)" != "master" ] && ${Git} checkout |
git.*checkout |
[ "$(${Git} branch --show-current)" != "master" ] && ${Git} checkout -f "${checkout
|
You can double check it agains various regex engines at https://regex101.com/
0 Likes
