Comment implémenter une correspondance non gourmande dans Stata en utilisant regex? Ou est-ce que Stata a même cette capacité?Correspondance non gourmande (paresseuse) avec regex?
Je veux extraire tout le texte qui se produit entre un hashtag "#" et un point ".".
code Exemple:
clear
set obs 3
generate var1="anything#aaabbbccc.dddeee.fff" in 1
replace var1="anything#aaabbbccc.dddeee" in 2
replace var1="anything#aaabbbccc." in 3
generate var2=regexs(1) if regexm(var1,"#(.*)\.")
list
Mais dans Stata (v.13.1), je ne peux pas sembler être en mesure d'utiliser le caractère non gourmand #(.*?)\.
. Ainsi, le code ci-dessus donne ceci:
+--------------------------------------------------+
| var1 var2 |
|--------------------------------------------------|
| anything#aaabbbccc.dddeee.fff aaabbbccc.dddeee |
| anything#aaabbbccc.dddeee aaabbbccc |
| anything#aaabbbccc. aaabbbccc |
+--------------------------------------------------+
Mais ce que je veux est ceci:
+--------------------------------------------------+
| var1 var2 |
|--------------------------------------------------|
| anything#aaabbbccc.dddeee.fff aaabbbccc |
| anything#aaabbbccc.dddeee aaabbbccc |
| anything#aaabbbccc. aaabbbccc |
+--------------------------------------------------+
Simple, efficace. Je vous remercie! – user812783765