Aru*_*pta 3 regex perl regex-negation regex-lookarounds
为什么这个perl代码输出"True"?
$bar = "\\";
if ($bar =~ /[A-z]/){
print "True";
} else {
print "False";
}
Run Code Online (Sandbox Code Playgroud)
它不应该归还假吗?
Mar*_*ell 20
因为\介于Az之间.见下表,92介于65和122之间.尝试[AZ].
0 nul 1 soh 2 stx 3 etx 4 eot 5 enq 6 ack 7 bel
8 bs 9 ht 10 nl 11 vt 12 np 13 cr 14 so 15 si
16 dle 17 dc1 18 dc2 19 dc3 20 dc4 21 nak 22 syn 23 etb
24 can 25 em 26 sub 27 esc 28 fs 29 gs 30 rs 31 us
32 sp 33 ! 34 " 35 # 36 $ 37 % 38 & 39 '
40 ( 41 ) 42 * 43 + 44 , 45 - 46 . 47 /
48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7
56 8 57 9 58 : 59 ; 60 < 61 = 62 > 63 ?
64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G
72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O
80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W
88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _
96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g
104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o
112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w
120 x 121 y 122 z 123 { 124 | 125 } 126 ~ 127 del
Run Code Online (Sandbox Code Playgroud)
$bar =~ /[A-z]/;
Run Code Online (Sandbox Code Playgroud)
是不一样的
$bar =~ /[A-Z]/;
Run Code Online (Sandbox Code Playgroud)
检查之间的所有字符A和z:
perl -le 'print map chr, ord("A") .. ord("z")'
Run Code Online (Sandbox Code Playgroud)
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz
Run Code Online (Sandbox Code Playgroud)