Je traite des chaînes contenant des valeurs dollar séparées non par la virgule. Par exemple:
"lot 2 - 650000 $" p>
J'ai besoin de trouver le "650000 $" et de le remplacer par "650 000 $". P>
Le problème est que je Je suis un novice complet en matière d'expressions régulières. J'ai trouvé un message qui a suggéré cela pour trouver des numéros: p> Ceci trouve avec succès le "2" et le "650000" dans ma chaîne. Cependant, je veux m'assurer que je n'obtiens que des nombres qui commencent par "$", alors je veux que je veux obtenir le "$ 650000". P> peut-il peut-être m'aider à adapter l'expression régulière pour obtenir uniquement des chiffres qui commencent avec "$"? p> p>
4 Réponses :
Il suffit d'ajouter le signe du dollar dans votre motif et utilisez Preg_replace_callback code> puis combine number_format code>. Quelque chose comme ceci:
Essayez ce qui suit: Ce site Web a vraiment aidé moi comprendre comment atteindre ce p> p>
Pouvez-vous montrer comment le remplacement est effectué en utilisant ce modèle?
La réponse de Kevin est meilleure. Je suis allé le long chemin:
Merci Adam. C'est effectivement fait tout ce que je voulais. J'ai tendance à prendre le long chemin autour des choses aussi; se révèle souvent être l'option la plus complète.
Vous pouvez remplacer les correspondances de l'expression régulière suivante avec une virgule pour confirmer la présence du signe dollar et insérer des virgules dans les emplacements corrects.
(?: : begin non-capture group
\$ : match '$'
| : or
\G : assert position at the end of the previous match
) : end non-capture group
\d+? : match 1+ digits
\K : reset starting point of match and no longer include
previously-consumed characters in reported match
(?= : begin positive lookahead
(?:\d{3}) : match 3 digits in a non-capture group
+ : execute non-capture group 1+ times
$ : match end of string
) : end positive lookahead
Je pense que vous pouvez faire le \ d +? Code> aussi \ d {1,3} code> si 3 chiffres est le max :-) REGEX101.com/R/f0ggy5/1 +1
@Thefourthbird, oui, je l'ai eu de cette façon, alors l'a changé sur un caprice.