Einfügen eines Leerzeichens zwischen einem Punkt und einem Zeichen durch einfaches Suchen / Ersetzen mit regulären Ausdrücken

8

Ich möchte Sätze trennen, indem Sie zwischen jeder Periode und einem Buchstaben ein Leerzeichen einfügen, aber nicht zwischen etwas anderem wie einem Punkt und einer Klammer oder einem Punkt und einem Komma.

Bedenken Sie Folgendes:

%Vor%

Dies hat wahrscheinlich eine Lösung in Perl oder PHP, aber was mich interessiert, ist, dass es in einem Texteditor gemacht werden kann, der das Suchen / Ersetzen basierend auf Regex unterstützt? Das Problem ist, dass es sowohl den Punkt als auch das Zeichen zusammenbringen würde, und Ersetzen würde beide völlig ausradieren. Mit anderen Worten, gibt es eine Möglichkeit, "nichts" zwischen diesen beiden Zeichen zu finden?

    
Захар Joe 29.10.2012, 15:32
quelle

4 Antworten

11
___ answer13124993 ___

Dieses Code-Segment löst Ihr Problem:

%Vor%

Sie sollten jedes Zeichen vor und nach dem Punkt erkennen und durch blanco ersetzen.

    
___ answer13124866 ___

Sprache ist nicht angegeben und ich habe PHP verwendet, aber Ausdruck ist ziemlich generisch und kann in anderen Umgebungen wiederverwendet werden:

%Vor%

Dieser Code führt zur folgenden Zeichenfolgenausgabe:

%Vor%
  1. (\ w) entspricht genau einem alphanumerischen Zeichen vor dem Punkt
  2. (.) entspricht Punkt
  3. (\ w) entspricht genau einem alphanumerischen Zeichen nach Punkt

erste und dritte Übereinstimmungen werden in Ersatzzeichenfolge als $ 1 und $ 3

bezeichnet     
___ qstnhdr ___ Einfügen eines Leerzeichens zwischen einem Punkt und einem Zeichen durch einfaches Suchen / Ersetzen mit regulären Ausdrücken ___ tag123regex ___ Reguläre Ausdrücke stellen eine deklarative Sprache zur Verfügung, um Muster in Strings zu vergleichen. Sie werden häufig für die Überprüfung, Analyse und Umwandlung von Zeichenfolgen verwendet. Da reguläre Ausdrücke nicht vollständig standardisiert sind, sollten alle Fragen mit diesem Tag auch ein Tag enthalten, das die anwendbare Programmiersprache oder das entsprechende Werkzeug angibt. HINWEIS: Nach HTML-, JSON-, usw.-Regexen zu fragen, neigt zu negativen Reaktionen. Wenn es einen Parser dafür gibt, verwende stattdessen diesen. ___ tag123replace ___ Ersetzen ist die Aktion, die eine Zeichenfolge nach einer Unterzeichenfolge durchsucht und sie durch eine andere Zeichenfolge ersetzt. ___ antwort13125076 ___

Sie können Rückverweise in der Ersetzungszeichenfolge verwenden. Normalerweise würde es so aussehen:

Suchregex:

%Vor%

Ersatzmuster (beachten Sie den Platz):

%Vor%

Die Rückverweise sind Stellvertreter für die entsprechenden Gruppen.

Alternativ könnten Sie auch Lookarounds verwenden:

%Vor%

Dadurch wird der Text nicht "erfasst", sondern nur die Position zwischen der Periode und dem Buchstaben / der Zahl (eine Zeichenfolge mit der Länge null). Ersetzen würde im Wesentlichen etwas Text einfügen.

Wirklich, es hängt jedoch von den Fähigkeiten Ihres Texteditors ab. Sehr wenige Texteditoren haben eine "vollständige" Engine für reguläre Ausdrücke. Ich benutze TextPad, das seinen eigenen Geschmack von regulärem Ausdruck hat, der Lookarounds weitgehend nicht unterstützt (zwingt mich, den ersten Ansatz zu verwenden).

    
___ qstntxt ___

Ich möchte Sätze trennen, indem Sie zwischen jeder Periode und einem Buchstaben ein Leerzeichen einfügen, aber nicht zwischen etwas anderem wie einem Punkt und einer Klammer oder einem Punkt und einem Komma.

Bedenken Sie Folgendes:

%Vor%

Dies hat wahrscheinlich eine Lösung in Perl oder PHP, aber was mich interessiert, ist, dass es in einem Texteditor gemacht werden kann, der das Suchen / Ersetzen basierend auf Regex unterstützt? Das Problem ist, dass es sowohl den Punkt als auch das Zeichen zusammenbringen würde, und Ersetzen würde beide völlig ausradieren. Mit anderen Worten, gibt es eine Möglichkeit, "nichts" zwischen diesen beiden Zeichen zu finden?

    
___ antwort13124925 ___

In Perl:

%Vor%

In vim (ganze Datei):

%Vor%

In Visual Studio wäre es

%Vor%

in der "Suche nach:" und

%Vor%

in "Ersetzen durch:".

Im Allgemeinen verfügen die meisten Editoren, die die Suche nach Regexs unterstützen, normalerweise über Erfassungsgruppen, mit denen Sie einen Teil des passenden Ausdrucks speichern und im Ersetzungstext verwenden können. In den obigen Ausdrücken ist alles in %code% "gefangen" und ich schließe es mit %code% ein.

    
___
JDB 29.10.2012, 15:52
quelle
1

Sprache ist nicht angegeben und ich habe PHP verwendet, aber Ausdruck ist ziemlich generisch und kann in anderen Umgebungen wiederverwendet werden:

%Vor%

Dieser Code führt zur folgenden Zeichenfolgenausgabe:

%Vor%
  1. (\ w) entspricht genau einem alphanumerischen Zeichen vor dem Punkt
  2. (.) entspricht Punkt
  3. (\ w) entspricht genau einem alphanumerischen Zeichen nach Punkt

erste und dritte Übereinstimmungen werden in Ersatzzeichenfolge als $ 1 und $ 3

bezeichnet     
ioseb 29.10.2012 15:40
quelle
1

Dieses Code-Segment löst Ihr Problem:

%Vor%

Sie sollten jedes Zeichen vor und nach dem Punkt erkennen und durch blanco ersetzen.

    
Marko Novakovic 29.10.2012 15:48
quelle
0
___ answer13124993 ___

Dieses Code-Segment löst Ihr Problem:

%Vor%

Sie sollten jedes Zeichen vor und nach dem Punkt erkennen und durch blanco ersetzen.

    
___ answer13124866 ___

Sprache ist nicht angegeben und ich habe PHP verwendet, aber Ausdruck ist ziemlich generisch und kann in anderen Umgebungen wiederverwendet werden:

%Vor%

Dieser Code führt zur folgenden Zeichenfolgenausgabe:

%Vor%
  1. (\ w) entspricht genau einem alphanumerischen Zeichen vor dem Punkt
  2. (.) entspricht Punkt
  3. (\ w) entspricht genau einem alphanumerischen Zeichen nach Punkt

erste und dritte Übereinstimmungen werden in Ersatzzeichenfolge als $ 1 und $ 3

bezeichnet     
___ qstnhdr ___ Einfügen eines Leerzeichens zwischen einem Punkt und einem Zeichen durch einfaches Suchen / Ersetzen mit regulären Ausdrücken ___ tag123regex ___ Reguläre Ausdrücke stellen eine deklarative Sprache zur Verfügung, um Muster in Strings zu vergleichen. Sie werden häufig für die Überprüfung, Analyse und Umwandlung von Zeichenfolgen verwendet. Da reguläre Ausdrücke nicht vollständig standardisiert sind, sollten alle Fragen mit diesem Tag auch ein Tag enthalten, das die anwendbare Programmiersprache oder das entsprechende Werkzeug angibt. HINWEIS: Nach HTML-, JSON-, usw.-Regexen zu fragen, neigt zu negativen Reaktionen. Wenn es einen Parser dafür gibt, verwende stattdessen diesen. ___ tag123replace ___ Ersetzen ist die Aktion, die eine Zeichenfolge nach einer Unterzeichenfolge durchsucht und sie durch eine andere Zeichenfolge ersetzt. ___ antwort13125076 ___

Sie können Rückverweise in der Ersetzungszeichenfolge verwenden. Normalerweise würde es so aussehen:

Suchregex:

%Vor%

Ersatzmuster (beachten Sie den Platz):

%Vor%

Die Rückverweise sind Stellvertreter für die entsprechenden Gruppen.

Alternativ könnten Sie auch Lookarounds verwenden:

%Vor%

Dadurch wird der Text nicht "erfasst", sondern nur die Position zwischen der Periode und dem Buchstaben / der Zahl (eine Zeichenfolge mit der Länge null). Ersetzen würde im Wesentlichen etwas Text einfügen.

Wirklich, es hängt jedoch von den Fähigkeiten Ihres Texteditors ab. Sehr wenige Texteditoren haben eine "vollständige" Engine für reguläre Ausdrücke. Ich benutze TextPad, das seinen eigenen Geschmack von regulärem Ausdruck hat, der Lookarounds weitgehend nicht unterstützt (zwingt mich, den ersten Ansatz zu verwenden).

    
___ qstntxt ___

Ich möchte Sätze trennen, indem Sie zwischen jeder Periode und einem Buchstaben ein Leerzeichen einfügen, aber nicht zwischen etwas anderem wie einem Punkt und einer Klammer oder einem Punkt und einem Komma.

Bedenken Sie Folgendes:

%Vor%

Dies hat wahrscheinlich eine Lösung in Perl oder PHP, aber was mich interessiert, ist, dass es in einem Texteditor gemacht werden kann, der das Suchen / Ersetzen basierend auf Regex unterstützt? Das Problem ist, dass es sowohl den Punkt als auch das Zeichen zusammenbringen würde, und Ersetzen würde beide völlig ausradieren. Mit anderen Worten, gibt es eine Möglichkeit, "nichts" zwischen diesen beiden Zeichen zu finden?

    
___ antwort13124925 ___

In Perl:

%Vor%

In vim (ganze Datei):

%Vor%

In Visual Studio wäre es

%Vor%

in der "Suche nach:" und

%Vor%

in "Ersetzen durch:".

Im Allgemeinen verfügen die meisten Editoren, die die Suche nach Regexs unterstützen, normalerweise über Erfassungsgruppen, mit denen Sie einen Teil des passenden Ausdrucks speichern und im Ersetzungstext verwenden können. In den obigen Ausdrücken ist alles in () "gefangen" und ich schließe es mit ein.

    
___
axblount 29.10.2012 15:44
quelle

Tags und Links