Question

Je ne parviens pas à trouver la chaîne de regex correcte pour supprimer une séquence de plusieurs? personnages. Je veux remplacer plus d'un séquentiel? avec un seul?, mais quels personnages pour échapper ... me échappe.

Exemple d'entrée:

  

Est-ce que cette chose est sur ??? ou quoi ???

Sortie souhaitée:

  

Cette chose est-elle allumée? ou quoi?

J'utilise preg_replace () en PHP.

Était-ce utile?

La solution

preg_replace('{\?+}', '?', 'Is this thing on??? or what???');

C’est-à-dire qu’il vous suffit d’échapper au point d’interrogation, le plus dans " \? + " signifie que nous remplaçons chaque instance par un ou plusieurs caractères, bien que je soupçonne "\? {2}". pourrait être encore meilleur et plus efficace (remplacer chaque instance par deux ou plusieurs caractères de point d'interrogation.

Autres conseils

preg_replace ('{\\? +}', '?', $ text);

devrait le faire.

Vous devez échapper le point d'interrogation avec une barre oblique inverse, puis le barre oblique inverse avec une autre barre oblique inverse.

C’est le cas, par exemple, des chaînes textuelles de C # sont gentils.

Cela devrait fonctionner (je l'ai testé):

preg_replace('/\?+/', '?', $subject);
preg_replace('/\?{2,}/','?',$text)

cela devrait le faire

preg_replace('/(\?+)/m', '?', 'what is going in here????');

le point d'interrogation doit être échappé et le m correspond au mode multiligne.

C’était un bon site Web à essayer à l'adresse http://regex.larsolavtorvik.com/

str_replace('??', '?', 'Replace ??? in this text');

Avez-vous essayé le motif

[?]+

avec le remplacement de ? ?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top