【发布时间】:2019-08-05 03:10:18
【问题描述】:
我正在尝试制作一个程序,我需要验证用户输入是否应该是 ip 的前 2 段(例如 00.000 或 000.000 等,其中 0 可以是任何数字)但程序说输入正确,即使是 213.1532。
if ($user input =~ m/(\d){3}.(\d){3}|(\d){2}.(\d){2}|(\d).(\d)|(\d){3}.(\d){2}|(\d){3}.(\d)|(\d){2}.(\d){3}|(\d).(\d){3}|(\d){2}.(\d)|(\d).(\d){2}/) {
print "it works"
}
【问题讨论】:
-
点是正则表达式中的一个特殊字符,用于任何你必须用反斜杠转义它的字符。
-
@Jens 是正确的。 Perlmonks 有一个网站向您展示正确的正则表达式:perlmonks.org/?node_id=1148750
-
我认为您还需要将正则表达式锚定到字符串的开头和字符串的结尾
标签: perl