Remplacer les caractères répétés avec une avec une regex
J'ai besoin d'une regex script pour supprimer la double répétition de ces mots en particulier..Si ces caractères se produit le remplacer avec un seul.
/[\s.'-,{2,0}]
Ce sont de caractère que si ils viennent je besoin de le remplacer avec le même personnage.
Regex ne peut pas tout faire tout seul. Le langage de programmation qu'êtes-vous en utilisant les regex, vous pourriez avoir besoin d'un distinct regex pour chaque personnage, ou quelque chose de plus simple en fonction de la langue?
Je me sers de ce avec javascript. adn formulaires php
Pensez-vous vraiment dire la gamme à partir d'un seul devis d'une virgule (c'est à dire
est trop courte: Oui Exactement je veux separetly comme
si la première exigence est en pleine bourre que je limiter l'utilisation de deux types de répétition. qui est, je vais restreindre
Je me sers de ce avec javascript. adn formulaires php
Pensez-vous vraiment dire la gamme à partir d'un seul devis d'une virgule (c'est à dire
'()*+,
) ou tout simplement les trois personnages '-,
? Et vous ne voulez --
, ,,
, ... plutôt que des choses comme .,
et .'
, droit?est trop courte: Oui Exactement je veux separetly comme
--
,,,
,` ,
"`.si la première exigence est en pleine bourre que je limiter l'utilisation de deux types de répétition. qui est, je vais restreindre
,.
,.,
,.-
o rnay autre ensemble.OriginalL'auteur Aditii | 2011-08-24
Vous devez vous connecter pour publier un commentaire.
Est-ce que l'expression régulière que vous recherchez?
Bon, maintenant que match. Si vous êtes à l'aide de Perl, vous pouvez remplacer à l'aide de l'expression suivante:
Edit: Si vous êtes à l'aide de :hum: PHP, alors vous devez utiliser cette syntaxe:
La
()
matches de groupe, le caractère et la\1
signifie que la même chose juste appariés dans les parenthèses se produit au moins une fois de plus. Dans le remplacement, la$1
se réfère à la correspondance dans le premier jeu de parenthèses.Note: c'est du Perl-Compatible Regular Expression (PCRE) de la syntaxe.
De la perlretut homme page:
Correspondant répétitions
Les exemples de la section précédente afficher une source de faiblesse. Nous étions seuls, correspondant à 3 lettres des mots ou morceaux de mots de 4 lettres ou moins. Nous aimerions être en mesure de faire correspondre des mots ou, plus généralement, des chaînes de caractères de longueur quelconque, sans écrire fastidieux de rechange comme
\w\w\w\w|\w\w\w|\w\w|\w
.C'est exactement le problème le quantificateur métacaractères
?
,*
,+
, et{}
ont été créés pour. Ils nous permettent de délimiter le nombre de répétitions pour une partie d'une regexp que nous considérons être un match. Les quantificateurs sont placés immédiatement après le caractère, le caractère de classe, ou de regroupement que nous voulons préciser. Ils ont les significations suivantes:a?
signifie: match 'a' 1 ou 0 foisa*
signifie: match 'a' 0 ou plusieurs fois, c'est à dire, n'importe quel nombre de foisa+
signifie: match 'a' 1 fois ou plus, c'est à dire, au moins une foisa{n,m}
signifie: match au moins "n" fois, mais pas plus que le "m".a{n,}
signifie: match au moins "n" fois ou plusa{n}
signifie: qui correspondent exactement à "n" foisComment puis-je le faire avec la fonction remplacer le souhaitez. replace(/([\s.'-,])\1+ /ig, ") ?
Il est traditionnel d'ici à mentionner au moins le langage de programmation, lorsque vous demandez à un langage spécifique de l'aide. J'ai mis la syntaxe PHP si cela aide.
+1 pour le subtil creuser à PHP.
OriginalL'auteur amphetamachine
Que d'autres ont dit, il dépend de vous moteur d'expressions régulières, mais un petit exemple de la façon dont vous pourriez faire ceci:
/([ _-,.])\1*/\1/g
Avec sed:
OriginalL'auteur Ulrich Dangel
À l'aide de Javascript comme mentionné dans un commennt, et en supposant (Ce n'est pas trop clair à partir de votre question) les caractères que vous souhaitez remplacer sont les caractères d'espace,
.
,'
,-
, et,
:OriginalL'auteur Paulpro
Si je comprends bien, vous voulez faire ce qui suit: étant donné un ensemble de caractères, de remplacer toute occurrence multiple de chacun d'eux avec un caractère unique. Voici comment j'allais le faire en perl:
Si, par exemple, text.txt à l'origine, contient:
il est modifié comme suit:
J'utilise simplement le remplacement des regex pour chaque personnage dans le jeu: par exemple
remplace 2 ou plusieurs occurrences d'un caractère de point avec un seul point. Je concaténer plusieurs de cette expressions, un pour chaque personnage de votre jeu original.
Il peut être plus compact façons de le faire, mais, je pense que c'est simple et ça fonctionne 🙂
J'espère que cela aide.
s///
; il ne fait pas partie d'une expression rationnelle à ce point.OriginalL'auteur MarcoS