Entfernen Sie Zahlen in der Mitte einer Zeichenfolge

Entfernen Sie Zahlen in der Mitte einer Zeichenfolge

Ich möchte überzählige Dezimalstellen aus einer Zeichenfolge entfernen, indem ich die Suchen/Ersetzen-Funktion mit regulären Ausdrücken verwende.

Zum Beispiel :

<xml_taga>145.3345542123</xml_taga>
<xml_tagb>125.1245471</xml_tagb>
<xml_tagc>42.12</xml_tagc>

Sollte so aussehen:

<xml_taga>145.33</xml_taga>
<xml_tagb>125.12</xml_tagb>
<xml_tagc>42.12</xml_tagc>

Am weitesten bin ich mit diesem Ausdruck gekommen

(\.\d{3,12})

Jede Hilfe wird geschätzt.

Antwort1

  • Ctrl+H
  • Suchen nach: (?<=\d\.\d\d)\d+ ODER\d\.\d\d\K\d+
  • Ersetzen mit:LEAVE EMPTY
  • Replace all

Erläuterung:

(?<=        : start lookbehind, make sure we have 
  \d\.\d\d  : a digit, a dot and 2 digits
)           : end lookbehind
\d+         : 1 or more digits

andere Alternative:

\d\.\d\d    : a digit, a dot and 2 digits
\K          : forget what we have seen until this point
\d+         : 1 or more digits
  • Überprüfen Sie den regulären Ausdruck

Ergebnis für gegebenes Beispiel:

<xml_taga>145.33</xml_taga>
<xml_tagb>125.12</xml_tagb>
<xml_tagc>42.12</xml_tagc>

Antwort2

Ich möchte überzählige Dezimalstellen aus einer Zeichenfolge entfernen, indem ich die Suchen/Ersetzen-Funktion mit regulären Ausdrücken verwende.

  • Menü "Suchen" > "Ersetzen" (oder Ctrl+ H)

  • Setzen Sie „Suchen nach“ auf (\d+\.\d\d).*<.

  • Setzen Sie "Ersetzen durch" auf\1<

  • Aktivieren Sie „Regulärer Ausdruck“ und „stimmt mit Zeilenumbruch überein“

  • Klicken Sie auf „Alle ersetzen“

    Bild

Vor:

<xml_taga>145.3345542123</xml_taga>
<xml_tagb>125.1245471</xml_tagb>
<xml_tagc>42.12</xml_tagc>

Nach:

<xml_taga>145.33</xml_taga>
<xml_tagb>125.12</xml_tagb>
<xml_tagc>42.12</xml_tagc>

Weiterführende Literatur

verwandte Informationen