Saya memiliki file teks yang menunjukkan komentar dengan satu '
.
Beberapa baris memiliki dua tanda kutip tetapi saya perlu mendapatkan semuanya dari contoh pertama '
dan umpan baris.
I AL01 ' A-LINE '091398 GDK 33394178
402922 0831850 ' '091398 GDK 33394179
I AL02 ' A-LINE '091398 GDK 33394180
400722 0833118 ' '091398 GDK 33394181
I A10A ' A-LINE 102 ' 53198 DJ 33394182
395335 0832203 ' ' 53198 DJ 33394183
I A10B ' A-LINE 102 ' 53198 DJ 3339418
Regex yang sesuai adalah 'char yang diikuti dengan sejumlah karakter apa pun [termasuk karakter nol] yang diakhiri dengan tanda akhir string / baris:
Dan jika Anda ingin menangkap semuanya setelah 'char tetapi tidak memasukkannya ke dalam output, Anda akan menggunakan:
Ini pada dasarnya mengatakan beri saya semua karakter yang mengikuti 'karakter sampai akhir baris.
Edit : Telah dicatat bahwa $ implisit saat menggunakan. * Dan oleh karena itu tidak diperlukan secara ketat, oleh karena itu polanya:
secara teknis benar, namun lebih jelas untuk lebih spesifik dan menghindari kebingungan untuk pemeliharaan kode nanti, oleh karena itu saya menggunakan $. Ini adalah keyakinan saya bahwa selalu lebih baik untuk menyatakan perilaku eksplisit daripada mengandalkan perilaku implisit dalam situasi di mana kejelasan dapat dipertanyakan.
sumber
Dimulai dengan satu tanda kutip (
'
), cocokkan karakter apa pun (.
) nol kali atau lebih (*
) hingga akhir baris ($
).sumber
Ketika saya mencoba '. * Di windows (Notepad ++) itu akan cocok dengan semuanya setelah pertama' sampai akhir baris terakhir.
Untuk menangkap semuanya sampai akhir baris itu saya mengetik yang berikut:
Ini hanya akan menangkap semuanya dari 'sampai akhir baris itu.
sumber
Dalam contoh Anda, saya akan menggunakan pola berikut:
gunakan opsi multiline dan global untuk mencocokkan semua kejadian.
Untuk memasukkan linefeed dalam pertandingan, Anda bisa menggunakan:
Tapi ini mungkin melewatkan baris terakhir jika tidak memiliki linefeed.
Untuk satu baris, jika Anda tidak perlu mencocokkan linefeed, saya lebih suka menggunakan:
sumber
Ini akan menangkap semuanya hingga 'di referensi latar 1 - dan semuanya setelah' di referensi belakang 2. Anda mungkin perlu keluar dari apostrof meskipun bergantung pada bahasa (\ ')
Modifikasi cepat: jika baris tidak memiliki '- backreference 1 tetap harus menangkap keseluruhan baris.
sumber
https://regex101.com/r/Jjc2xR/1
Saya yakin yang ini berfungsi, ini akan menangkap serial de hexa dalam teks berstruktur buruk yang beraneka ragam di bawah
Saya seorang pemula abadi di regex tapi saya akan mencoba menjelaskan yang ini
(\ w * (Hex): w *): Temukan teks di baris di mana string berisi "Hex:"
(. *?) Ini adalah teks yang diambil kedua dan berarti segalanya setelahnya
(? = | $) buat batas yaitu spasi antara = dan |
Jadi dengan kelompok kedua, Anda akan mendapatkan nilainya
sumber