Insérer un espace entre un point et un caractère à l'aide de simple rechercher/remplacer avec des expressions régulières
Je veux séparer les phrases en insérant un espace entre chaque période et chaque lettre, mais pas entre autre chose, comme un point, et un support ou un point et une virgule.
Considérez ceci:
This is a text.With some dots.Between words.(how lovely).
Ce qui a probablement une solution en Perl ou PHP, mais ce qui m'intéresse c'est peut-il être fait dans un éditeur de texte qui prend en charge la recherche/remplacement basé sur les regexes? Le problème est qu'il correspond à la fois la dot et le personnage et de le remplacer complètement l'effacer à la fois. En d'autres termes, est-il un moyen de faire correspondre le "rien" entre ces deux personnages?
quel est ton code?
Je pense que votre référence à PHP et Perl est embrouiller les gens. Voulez-vous des solutions dans ces langues, ou vous êtes à la recherche d'une solution dans un éditeur de texte?
Ouais, désolé de ne pas être tout à fait clair sur ce point - j'étais précisément en essayant d'éviter des solutions en PHP ou Perl parce que ceux qui finirait par avoir des variables/chaînes de remplacement et je voulais le faire strictement dans un éditeur de texte.
Je pense que votre référence à PHP et Perl est embrouiller les gens. Voulez-vous des solutions dans ces langues, ou vous êtes à la recherche d'une solution dans un éditeur de texte?
Ouais, désolé de ne pas être tout à fait clair sur ce point - j'étais précisément en essayant d'éviter des solutions en PHP ou Perl parce que ceux qui finirait par avoir des variables/chaînes de remplacement et je voulais le faire strictement dans un éditeur de texte.
OriginalL'auteur | 2012-10-29
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser les références arrières dans la chaîne de remplacement. En général, il ressemblerait à quelque chose comme:
De recherche regex:
De remplacement modèle (avis de l'espace):
Les références arrières sont en stand-ins pour les groupes correspondants.
Sinon, vous pouvez utiliser lookarounds:
Ce n'est pas "capturer" le texte, il ne serait que de correspondre à la position entre la période et la lettre/nombre (une chaîne de longueur nulle). Remplacement de il serait, essentiellement, insérez du texte.
Vraiment, cependant, elle dépend des capacités de votre éditeur de texte. Très peu d'éditeurs de texte ont une "complète" moteur d'expression régulière. J'utilise TextPad qui a sa propre saveur de l'expression régulière qui en grande partie ne prend pas en charge lookarounds (en me forçant à utiliser la première approche).
OriginalL'auteur JDB
Langue n'est pas indiqué et j'ai utilisé PHP, mais l'expression est assez générique et peut être réutilisé dans d'autres environnements:
ce code à la suite de la sortie de chaîne:
premier et troisième matchs sont considérés dans la chaîne de remplacement $1 et $3
oui je l'ai testé dans le texte mate où le modèle de recherche ressemble exactement (\w)(\.)(\w) et le remplacement de la structure comme $1 $3
Je ne savais pas que TextMate pris en charge le remplacement des modèles ($1 $3...), c'est chouette.
OriginalL'auteur ioseb
Ce segment de code permet de résoudre votre problème:
Vous doit détecter tous les caractères avant et après le point et le remplacer par blanco.
OriginalL'auteur Marko Novakovic
En Perl:
Dans vim (fichier entier):
Dans Visual Studio, il serait
dans la "Rechercher:", et
dans "Remplacer par:".
En général, la plupart des éditeurs qui prennent en charge la recherche par les regexs ont généralement des groupes de capture qui vous permettent de stocker une partie de l'expression, de la correspondance et de l'utiliser dans le texte de remplacement. Dans les expressions ci-dessus tout dans le
()
est "capturé" et je l'inclus avec\1
.OriginalL'auteur axblount