Je travaille sur un programme C++ où l'un des arguments de la ligne de commande doit être passé une regex. Par exemple: abc.exe --option ab\[0\]
Pass dans les arguments de ligne de commande de C++
Lorsque j'accède à la valeur de l'option à partir du programme, il devient ab\\[0\\]
qui devient une expression régulière différente. Dans le programme lorsque j'essaie de remplacer \\[
par \[
en utilisant boost::replace_all
, le résultat est [
qui n'est pas non plus la sortie prévue pour moi.
Ainsi, des suggestions sur la façon de passer et de retenir \[
cela en faisant passer par des arguments de ligne de commande
Afficher le code pour votre remplacement de boost, es-tu échapper tes backslashes? Vous devrez probablement remplacer '\\\\ [' par \\ ['... –
Essayez les guillemets? C'est difficile à dire sans le code. –