Kecocokan serakah dalam ekspresi reguler MS Word?

3

Saya perlu membersihkan beberapa tabel di Word, di mana titik koma dan teks setelahnya berlebihan, misalnya

text1 ; text 2

di mana di atas adalah konten satu sel dan saya harus menghapus titik koma dan semuanya setelah itu sampai akhir sel ; sayangnya teks 2 tidak memiliki pola khusus.

Saya mencoba melakukan itu dengan Word bawaan menemukan dan mengganti menggunakan regex.

Karena ujung yang diinginkan dari ekspresi reguler saya adalah akhir sel, saya tidak dapat mencocokkannya, saya telah mencoba beberapa kombinasi karakter apa pun ;?* ;* ;?@tetapi semua berhenti pada teks yang cocok paling pendek , apakah ada cara untuk membuatnya cocok sampai akhir sel?

Máté Juhász
sumber
Ups. Sedang melihat tautan yang salah.
DavidPostill
Apakah ;?{1,}bekerja?
DavidPostill
ya, itu "bekerja", cocok ;dan satu karakter setelahnya
Máté Juhász
Maka sesuatu seperti ;?{1,9999}harus bekerja? " {n,m}cocok dari n ke m kemunculan karakter atau ekspresi sebelumnya"
DavidPostill
Silakan coba;[ 0-9A-Za-z]*
DavidPostill

Jawaban:

4

Ini sepertinya berfungsi:

;[!¤]{1,}

Saya menggunakan tanda mata uang umum ¤, Anda dapat menggunakan simbol lain yang Anda yakini tidak termasuk dalam teks yang mengikuti tanda titik koma (mungkin itu tanda titik koma itu sendiri).

Sekedar catatan: membiarkan kurung kurawal kedua kosong tidak berarti string tanpa akhir, saya menemukan dengan uji coba bahwa luasnya terbatas pada 255 karakter.

SΛLVΘ
sumber
Terima kasih! itu benar-benar bekerja! Mengganti {1,}ke @atau *membuat pertandingan malas, serta mengganti [!#]ke ?. Jadi saya tidak dapat menemukan logika di baliknya, tetapi ia bekerja :)
Máté Juhász
0

Saya perlu menghapus titik koma dan semuanya setelahnya

Gunakan ekspresi reguler berikut:

;?{1,9999}^13
  • {n,m}cocok dari nhingga mkemunculan karakter atau ekspresi sebelumnya
  • ^13 cocok dengan jeda paragraf

Sumber Temukan dan ganti teks dengan menggunakan ekspresi reguler (Lanjutan)

DavidPostill
sumber
Terima kasih atas usaha Anda! Ya, ini berfungsi untuk paragraf normal, tetapi sel tabel tidak berakhir dengan tanda paragraf, oleh karena ^13itu tidak cocok dengan akhir sel
Máté Juhász
Apakah itu berfungsi jika Anda menghapus ^13atau melanjutkan pencocokan ke sel berikutnya?
DavidPostill
;?{x,9999}hanya cocok dengan titik koma dan xkarakter berikut
Máté Juhász
Coba gunakan angka yang lebih kecil daripada 9999mungkin ;?{x,99}atau sesuatu
DavidPostill
semua sama, juga {1,}hanya cocok dengan satu karakter
Máté Juhász
0

Salin meja Anda di tempat lain; mengubahnya menjadi teks ( Tata Letak / Konversi ke teks ) dan pilih Paragraph delimiter.

Lanjutkan mengganti ;*^13dengan ^9, setelah Use wildcardsdiperiksa. Potong blok teks ini.

Pilih semua teks pada tabel asli dan tempel "hanya teks".

SΛLVΘ
sumber
Sayangnya ada juga berbagai format dan komentar, solusi ini tidak melindungi mereka.
Máté Juhász
Penanganan masalah ini bertujuan untuk mempertahankan pemformatan tabel, Anda perlu menempelkan teks tanpa pemformatannya (Anda akan melihat itu sebagai opsi ketika Anda mengklik kanan - melayang menunjukkan kepada Anda pratinjau), dan itu akan mendapatkan tabel asli '. Tidak tahu tentang komentar, maaf.
SΛLVΘ