J'ai un input.txt de fichier avec le contenu suivant:Bash regexp * correspond trop loin
foo
[assembly: AssemblyVersion("1.2.3")]
bar")]
quux
Pour correspondre à la 1.2.3
de l'entrée le script suivant est utilisé:
#!/bin/bash
regex='\[assembly: AssemblyVersion\("(.*)"\)\]'
fileContent=$(cat input.txt)
[[ "$fileContent" =~ $regex ]]
echo "${BASH_REMATCH[1]}"
I on peut attendre que la sortie soit 1.2.3
mais il est:
1.2.3")]
bar
Pourquoi est-ce ainsi? Comment le réparer?
Le testeur d'expressions régulières au https://regex101.com fonctionne comme prévu.
Avidité. Essayez ''\ [assembly: AssemblyVersion \ (" ([^()] *) "\) \]''. –
@stribizhev Wow, sympa, fonctionne en effet. Merci beaucoup! – alvarez