Je nettoie une chaîne de recherche et je dois supprimer toutes périodes qui apparaissent mais gardent des points décimaux lorsqu'ils se situent entre deux chiffres. p>
Par exemple, si j'ai une chaîne p>
599.75, Tigers. P> blockQuote>
Alors j'aimerais qu'il revenait comme p>
599.75, Tigers P> blockQuote>
Je pensais une ligne comme: p>
strnwstring = regex.replace (strorigstring, strègex, string.empty); p> blockQuote>
Où Strregex correspondrait à la. et pas les choses qui l'entourent aussi. p>
3 Réponses :
Vous pouvez utiliser quelque chose comme \. (?! \ d) code> p>
Vous devez profiter de Assertions Lookahead et Lookbehind . Ils ne correspondent pas aux personnages de votre contribution, mais ne déterminent que si une correspondance est possible ou non.
Vous pouvez utiliser des regards négatifs et des regards négatifs pour faire le contraire de cela, ce qui est approprié ici. En utilisant ce qui suit pour strègex code> correspondra aux périodes qui ne sont pas entourées de chiffres:
Cela a fonctionné et la page de tutoriel que vous avez liée est très utile. Merci!
La façon dont je lis la question, vous voulez correspondre à un point seulement s'il n'est pas à la fois précédé et suivi de chiffres. Par exemple, dans la liste suivante, vous voudriez correspondre au point de chaque chaîne, à l'exception de la dernière, car c'est le seul à obtenir des chiffres des deux côtés.
(a dot, not preceded by a digit) OR (a dot, not followed by a digit)