OnWorks Linux dan Windows Online Workstations

logo

Pengehosan Dalam Talian Percuma untuk Workstation

<Sebelum | Contents [show] | Seterusnya>

? - Padankan Elemen Sifar Atau Satu Kali

Pengkuantiti ini bermaksud, sebenarnya, "Jadikan elemen sebelumnya sebagai pilihan." Katakan kami ingin menyemak nombor telefon untuk kesahihan dan kami menganggap nombor telefon itu sah jika ia sepadan dengan salah satu daripada dua borang ini:

(nnn) nnn-nnnn nnn nnn-NNNN

di mana "n” ialah angka. Kita boleh membina ungkapan biasa seperti ini:

^\(?[0-9][0-9][0-9]\)? [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$

Dalam ungkapan ini, kami mengikuti aksara kurungan dengan tanda soal untuk menunjukkan bahawa ia akan dipadankan dengan sifar atau satu masa. Sekali lagi, kerana tanda kurungan biasanya


metacharacters (dalam ERE), kami mendahului mereka dengan garis serong ke belakang untuk menyebabkan mereka dianggap sebagai literal.

Jom cuba:



[saya@linuxbox ~]$ echo "(555) 123-4567" | grep -E '^\(?[0-9][0-9][0-9]

\)? [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$'

(555) 123-4567

[saya@linuxbox ~]$ gema "555 123-4567" | grep -E '^\(?[0-9][0-9][0-9]\)

? [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$'

555-123 4567

[saya@linuxbox ~]$ gema "AAA 123-4567" | grep -E '^\(?[0-9][0-9][0-9]\)

? [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$'

[saya@linuxbox ~]$

[saya@linuxbox ~]$ echo "(555) 123-4567" | grep -E '^\(?[0-9][0-9][0-9]

\)? [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$'

(555) 123-4567

[saya@linuxbox ~]$ gema "555 123-4567" | grep -E '^\(?[0-9][0-9][0-9]\)

? [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$'

555-123 4567

[saya@linuxbox ~]$ gema "AAA 123-4567" | grep -E '^\(?[0-9][0-9][0-9]\)

? [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$'

[saya@linuxbox ~]$


Di sini kita melihat bahawa ungkapan itu sepadan dengan kedua-dua bentuk nombor telefon, tetapi tidak sepadan dengan satu yang mengandungi aksara bukan angka.


Pengkomputeran Awan OS teratas di OnWorks: