Bir dizenin ortasındaki sayıları kaldır


4

Fazlalık ondalık harfleri regex ile find / replace komutunu kullanarak dizgeden çıkarmak istiyorum.

Örneğin :

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

Bu gibi görünmeli:

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

Aldığım en uzak şey bu ifadeyle.

(\.\d{3,12})

Herhangi bir yardım takdir edilecektir.

Yanıtlar:


2
  • Ctrl+H
  • Neyi bul: (?<=\d\.\d\d)\d+ OR\d\.\d\d\K\d+
  • İle değiştirin: LEAVE EMPTY
  • Replace all

Açıklama:

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

diğer alternatif:

\d\.\d\d    : a digit, a dot and 2 digits
\K          : forget what we have seen until this point
\d+         : 1 or more digits
  • Düzenli ifadeyi kontrol et

Verilen örnek için sonuç:

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

2

Fazlalık ondalık harfleri regex ile find / replace komutunu kullanarak dizgeden çıkarmak istiyorum.

  • "Ara"> "Değiştir" (veya Ctrl+ H) menüsü

  • "Neyi bul" olarak ayarlayın (\d+\.\d\d).*<.

  • "İle Değiştir" seçeneğini \1<

  • "Normal ifade" ve "yeni satırlarla eşleş" i etkinleştir

  • "Tümünü Değiştir" i tıklayın

    görüntü

Önce:

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

Sonra:

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

daha fazla okuma


.*açgözlüdür ve bir satırda iki etiket olduğunda bazı sorunlara neden olabilir.
Toto,

1
Düzenlemem reddedildi, nedenini bilmiyorum, Orijinali sonuç yerine "after" bölümünde çoğalttınız.
Toto,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.