BlackBerry 6 Regex

Saya memiliki regex untuk BlackBerry 6

Mozilla/5.0 (BlackBerry; U; BlackBerry (?'deviceName'\w+); en-US) AppleWebKit/534.11+ (KHTML, seperti Gecko) Version/(?'version'(?'major'\d+)(.( ?'minor'\d+)?)\w*) Safari Seluler/534.11+

Tapi sepertinya tidak cocok dengan string ini:

Mozilla/5.0 (BlackBerry; U; BlackBerry AAAA; en-US) AppleWebKit/534.11+ (KHTML, seperti Gecko) Version/X.X.X.X Mobile Safari/534.11+

Apa yang salah? Ini ada dalam file Definisi Browser untuk .NET 4.0

CATATAN: Untuk beberapa alasan editor juga tidak menampilkan karakter saya yang lolos. semua / lolos.


person Matt Hudson    schedule 15.07.2011    source sumber


Jawaban (1)


Dengan asumsi string masukan Anda sebenarnya berisi versi numerik, seperti 6.5.4.3 dan bukan X.X.X.X, ekspresi reguler berikut akan cocok:

@"Mozilla\/5.0 \(BlackBerry; U; BlackBerry (?'deviceName'\w+); en-US\) AppleWebKit\/534\.11\+ \(KHTML, like Gecko\) Version\/(?'version'(?'major'\d+)(.(?'minor'\d+)?)[\.\w]*) Mobile Safari\/534\.11\+"

Selain harus menghindari semua /().+ karakter, ekspresi reguler Anda tidak cocok dengan dua elemen terakhir nomor versi; karena kelas karakter \w tidak menggunakan karakter titik.

person Thomas Gerstendörfer    schedule 15.07.2011