Katakan itu sangat mudah jika saya ingin menemukan sesuatu yang mengandung huruf kecil dan angka
menghasilkan_text | grep -E '[0-9a-z]'
Kurung berguna untuk mencocokkan serangkaian karakter, tetapi bagaimana dengan karakter yang agak spesial?
Jika saya ingin, menggunakan tanda kurung, cocok dengan karakter apa pun kecuali salah satu dari ini: braket penutup ]
, tanda hubung (atau tanda hubung) "-", baik garis miring /
dan \
, tanda garis , tanda ^
titik dua :
.
Apakah akan terlihat seperti ini (saya tahu ini tidak berhasil)?
[^] - / \ ^:]
sumber
awk
implementasi danperl
misalnya.[^-]]
(Yang ini gagal)?^
setelah]
jadi[^-]]
tidak akan bekerja bahkan jika keduanya^
dan]
diperlakukan secara harfiah (seperti[b-a]
). Ngomong-ngomong, jika Anda ingin mencocokkan dari mis;
hingga menutup braket, Anda bisa menggunakan rentang hingga char sebelumnya]
(yang merupakan backslash) dan memasukkan]
sebagai char pertama dalam ekspresi braket jadi mis[];-\\]
.[[.^.]-[.-.]]
? Saya merasa ini akan berhasil. Mari kita asumsikan bahwa kode ASCII^
sebelumnya-
.[^[.].][.-.]/\^:]
Mungkin anehnya, Anda perlu memiliki beberapa karakter di tempat-tempat tertentu. Anda harus memiliki
]
karakter pertama dalam set, dan-
harus menjadi karakter terakhir dalam set.Berikut adalah RE yang memenuhi persyaratan Anda
[^]\^/-]
::sumber
[
Karakter kedua tidak termasuk di sana; OP tidak ingin mengecualikannya.