Rumah > Soal Jawab > teks badan
Apabila saya menggunakan ungkapan biasa, saya menemui fenomena yang sangat pelik, seperti berikut:
< /p>
[_-\ˇ]
< /p>
[=-\ˇ]
< /p>
Iaitu, yang pertama tidak boleh memadankan huruf, yang kedua boleh memadankan huruf, dan yang ketiga boleh memadankan huruf dan garisan
Saya hanya mahu menggantikan watak-watak istimewa ini apabila ia muncul dalam rentetan. Saya tidak menjangkakan bahawa walaupun huruf itu akan diganti. t tahu mengapa ia sangat pelik untuk menulis dengan cara ini Tuhan Yang Maha Besar Mari kita jelaskan peraturan ini.
Sial, masih ada ini, sangat sukar untuk menulis regex biasa
[=-~][code>
...
Jika anda berminat, cuba padankannya dengan hello w\o\r\l\d
.
我想大声告诉你2017-05-16 13:09:23
Pertama sekali, contoh pertama tidak sepatutnya menjadi undang-undang tetap, jadi tidak akan ada hasilnya.
Ungkapan biasa dalam dua contoh seterusnya ialah sintaks [a-z]
yang paling asas, yang bermaksud memadankan semua aksara daripada satu aksara kepada pengekodan aksara yang lain. [a-z]
语法,表示匹配从一个字符到另一个字符编码之间的所有字符。
两例子中,起始字符分别是 _
、=
, 终止字符都是全角符号 ˇ
。
全角符号编码大于所有 ASCII 编码,所有在匹配 AscII 编码时都匹配,不用多考虑,我们查下起始字符的 ASCII 编码。
ASCII 编码中:/
< 0-9
< =
< A-Z
< <
_
< a-z
所以, [=-ˇ]
能匹配大写字母、反斜杠、小写字母,[_-ˇ]
_
dan =
, dan aksara yang berakhir adalah semua simbol lebar penuh ˇ
. Pengekodan ASCII:
[=-ˇ]
boleh memadankan huruf besar, garis miring ke belakang dan huruf kecil, dan [_-ˇ]
hanya boleh memadankan huruf kecil, kedua-duanya tidak boleh dipadankan. 🎜
🎜
🎜Kedua, adalah lebih baik untuk tidak menulis ungkapan biasa yang pelik, kerana ia sukar untuk dikekalkan. 🎜