PHP:我不明白为什么这个正则表达式与这个表达式不匹配

时间:2016-12-20 17:10:46

标签: php regex

我想了解这个正则表达式对应的内容:

preg_match("/\/[A-z]{2}\/[^\/]*/", "expression_to_test")

我尝试使用 / a2 / ,但它不匹配。据我了解正则表达式,按此顺序我们有:“/”是分隔符,“/”代表反斜杠,[Az] {2}代表2个字母,然后是另一个“/”,然后没有“/”多次...

所以,这显然不是一个好的答案,如果你找到匹配的模式我会很棒。

由于

2 个答案:

答案 0 :(得分:1)

a2不匹配a-z因为你有十进制数。试试这个:

\/[A-Za-z0-9]{2}\/[^\/]*

https://regex101.com/r/iWSrPD/1

答案 1 :(得分:1)

A-z a single character in the range between A (ASCII 65) and z (ASCII 122) (case sensitive)

2不属于它,因此失败。(因为2的ascii为50

/Ab/匹配。

参见演示。

https://regex101.com/r/woJSXd/1

见表。仅从65122

您需要使用[A-Za-z],因为[A-z]的匹配程度远远超过预期。请参阅表格。

enter image description here