Perl 正则表达式可以匹配正值和负值
我有一个要匹配的数据列表:
0:1
0:3
0:-1
0:2
0:-4
我可以使用什么正则表达式来匹配所有数据:
我尝试了这个,但不起作用:
$line =~ /0:(\w+)/
它只匹配正数。
I have a list of data which I want to match:
0:1
0:3
0:-1
0:2
0:-4
What's the regex I can use to match all of them:
I tried this but won't work:
$line =~ /0:(\w+)/
It only match the positives.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
\w
用于单词符号:字母、数字和下划线。这意味着除0:34
之外的正则表达式将匹配0:hello
之类的内容,但不会匹配减号。如果您只需要数字,那么
/0:-?\d+/
应该可以。如果您需要匹配整个字符串(要过滤掉像a0:-3b
这样的字符串,您可以使用/^0:-?\d+$/
。\w
is for word symbols: letters, digits and underscore. That means your regexp besides0:34
will match smth like0:hello
, but won't match minus symbol.If you need only digits then
/0:-?\d+/
should work. And if you need to match whole string (to filter out strings likea0:-3b
you can use/^0:-?\d+$/
.$line =~ /0:[-]?[0-9]
怎么样?how about
$line =~ /0:[-]?[0-9]