帮助正则表达式

时间:2011-07-29 14:31:36

标签: regex

这是我的正则表达式:(^[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, _.]+几乎可以返回任何内容

你们能帮助我理解我做错了什么吗?

2 个答案:

答案 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