这是我的正则表达式:(^[A-Za-z][A-Za-z0-9_]*)=([A-Za-z0-9, _.]+|^(?:(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))
我希望我可以使用这样的东西来匹配表单的配置文件中的文本:
variable=value
ipaddress=127.0.0.1
等...
使用测试字符串
test=127.0.0.1
test1=192.168.0.1
test2=hello world
test3=helloworld
test4=Carl_Sagan,Awesome,cool story bro
test5=%should not match(#$&!&$(5vzxcv
6test=should not match
我正在http://myregextester.com/index.php#sourcetab和其他一些人
进行测试并且此表达式仅匹配第一行。当我删除表达的不同部分时,它按照我想要的方式工作,但不是当我把它们放在一起时。
在测试网站http://gskinner.com/RegExr/上,它运作正常。
^(?:(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))
将返回测试字符串中的所有IP地址
(^[A-Za-z][A-Za-z0-9_]*)=
将返回页面上的所有variable=
[A-Za-z0-9, _.]+
几乎可以返回任何内容
你们能帮助我理解我做错了什么吗?
答案 0 :(得分:0)
我不建议将正则表达式用于IP地址。否则你将不得不处理像
这样的野兽"^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$"
答案 1 :(得分:0)
这应该有效:
(^[A-Za-z][A-Za-z0-9_]*)=(([0-9]{1,3}\.){3,5}[0-9]{1,3}|([A-Za-z0-9, _.]*))
请在此处查看:http://regexr.com?2ubgl