Erlang中的正则表达式,在结果列表中添加其他匹配项

gg58donl  于 2022-12-16  发布在  Erlang
关注(0)|答案(1)|浏览(103)

我正在学习如何在Erlang中使用正则表达式获取字符串。请解释一下为什么当我对一个值为0到255的元素列表执行正则表达式时,大于127的值会落入结果列表中?

Expected = true,
ValidCharacterList = lists:seq(0, 255),

RegularExpression = "[[:ascii:]]",
{ok, MP} = re:compile(RegularExpression),
{match, _} = re:run(ValidCharacterList, MP),
Result = true,
?assertEqual(Expected, Result).

结果是该序列的所有元素(从0到255)。
Full code example .
More code example

dffbzjpn

dffbzjpn1#

POSIX的:ascii:被定义为[\x00-\x7F]
另一个字符类ascii错误地匹配了Latin-1字符,而不是POSIX指定的0-127范围。如果不改变其他类的行为,这个问题就无法解决,所以我们建议将范围改为[\0-\x7f]。

相关问题