1echo T.utfre: tests of regular expression code for Unicode/utf-8 2# adapted from T.re 3 4awk ' 5BEGIN { 6 FS = "\t" 7 awk = "../a.out" 8} 9NF == 0 { 10 next 11} 12$1 != "" { # new test 13 re = $1 14} 15$2 != "" { # either ~ or !~ 16 op = $2 17 if (op == "~") 18 neg = "!" 19 else if (op == "!~") 20 neg = "" 21} 22$3 != "" { # new test string 23 str = $3 24} 25$3 == "\"\"" { # explicit empty line 26 $3 = "" 27} 28NF > 2 { # generate a test 29 input = $3 30 test = sprintf("./echo '"'"'%s'"'"' | %s '"'"'%s/%s/ {print \"%d fails %s %s %s\"}'"'"'", 31 input, awk, neg, re, NR, re, op, input) 32 # printf(" %3d %s %s %s:\n", NR, re, op, input) 33 # print "test is |" test "|" 34 system(test) 35 # system("bprint -c ../a.out") 36 nt++ 37} 38END { print " " nt, "tests" } 39' <<\!!!! 40 ~ 41 42 43 "" 44 ~ 45 b 46 bb 47 !~ "" 48 时 49 xxxxx 50. ~ 时 51 x时x 52 53 !~ "" 54.の ~ xの 55 xxの 56 xのx 57 !~ の 58 のx 59 "" 60$ ~ x 61 62 "" 63.$ ~ 모 64 xx모 65 x모x 66 !~ "" 67д$ ~ д 68 bд 69 bbbд 70 !~ дb 71 x 72 "" 73^ ~ и 74 "" 75 ^ 76^λ$ ~ λ 77 !~ xλ 78 λx 79 xλx 80 "" 81^λ.$ ~ λx 82 λλ 83 !~ xλ 84 λλλ 85 λxy 86 "" 87^$ ~ "" 88 !~ に 89 ^ 90^.해 ~ め해 91 め해해 92 !~ 해 93 "" 94^.*해 ~ 해 95 め해 96 めめめめめめ해 97 !~ "" 98^.+해 ~ め해 99 めめめめめめ해 100 !~ "" 101 해 102 해め 103해* ~ "" 104 해 105 해해해해 106 め해 107 めめめめ 108해해* ~ 해 109 해해해 110 め해 111 !~ めめめめ 112 "" 113\$ ~ $ 114 $ 115 $ 116 $ 117 !~ "" 118 119\. ~ . 120 !~ 121 "" 122xθ+y ~ xθy 123 xθθy 124 xθθθθθθy 125 !~ θy 126 xy 127 xθ 128xθ?y ~ xy 129 xθy 130 !~ xθθy 131θ?b?の? ~ "" 132 x 133^a?b?め ~ め 134 aめ 135 bめ 136 abめ 137 めa 138 !~ "" 139 ab 140 aba 141[Α-Ω] ~ Α 142 aΔb 143 xyΩ 144 !~ abc 145 β 146 "" 147[^Α-Ω] ~ δ 148 aΔb 149 xyΩ 150 !~ Α 151 Δ 152 "" 153[Α-ΔΦ-Ω] ~ Α 154 Β 155 Δ 156 Φ 157 Ω 158 !~ Π 159 Σ 160Π[[:lower:]]+ ~ Πa 161 Πab 162 !~ Π 163 ΠX 164 Π: 165 Π[ 166 Π] 167の[0-9]+に ~ の0に 168 の23に 169 の12345に 170 !~ 0に 171 のに 172の[0-9]?に ~ のに 173 の1に 174 !~ の23に 175の[[]に ~ の[に 176 !~ のに 177 の[[]に 178 の]に 179の[[-]に ~ の[に 180 の-に 181 !~ のに 182 の[[]に 183 の]に 184の[[-a]に ~ の[に 185 のaに 186 の]に 187 !~ のに 188 の[[]に 189 の-に 190の[]-a]に ~ の]に 191 のaに 192 !~ のに 193 の[に 194 の-に 195の[]]に ~ の]に 196 !~ のに 197 の[]]に 198 の[に 199の[^[]に ~ のaに 200 !~ の[に 201の[-]に ~ の-に 202 !~ のに 203 の+に 204の[^-]に ~ の+に 205 !~ の-に 206 のに 207の[][]に ~ の[に 208 の]に 209 !~ のに 210 の][に 211 の[]に 212の[z-a]に ~ のに 213 !~ の 214 に 215 のaに 216 のzに 217 の-に 218に|だ ~ だ 219 に 220 だに 221 !~ a 222 "" 223^στο|τους$ ~ στο 224 στοd 225 aτους 226 τους 227 !~ xστο 228 τουςa 229^(στο|τους)$ ~ στο 230 τους 231 !~ στοτους 232 στοx 233 cτους 234!!!! 235