正则表达式的URL
有人可以帮我写下面的URL的正则表达式吗? 我想要一个正则表达式来匹配整个URL。网址格式会是这样的。正则表达式的URL
https://www.mywebsite.com/us/cgi-bin/binary?cmd=_payment-option&transaction_id=8768JKHKJG19322&account_number=6UN85941RH525783L&transaction_date=Apr 12, 2012&transaction_amount=-$11.00&ccode=USD&act_id=6K6218756F7819322&counterparty=Pretty Flower Florist&initiated_page=_login&go_Ah9w8keNJ8YRLMkAMTS_Izeq0br1CF6OVtGv69WzOo8AjgDgGIiBetMG-lK&Go_Actions
这是我这么远,但只能做到第一“&”
http[s]*:\/\/www.[a-zA-Z0-9.]*mywebsite.[a-zA-Z]*[/]*[a-zA-Z0-9]*[/]*cgi-bin[/]*binary[?]*cmd=[_a-z\-]*[[\&][a-zA-Z0-9_-]*[=][a-z ,A-Z0-9_-]*]*
我怎么能重复模式&transaction_id=8768JKHKJG19322
它匹配?
[[\&][a-zA-Z0-9_-]*[=][a-z ,A-Z0-9_-]*]*
似乎并没有工作
这是不是很强大的正则表达式,但它应该给你的想法 - 重复共同的模式。
http[s]?:\/\/www\.mywebsite\.com(?:\/[a-zA-Z-?=_&\d\s,$\.]+)+
的部分答案,因为(其他海报指出),目前还不清楚你想要什么来完成的,和你的上下文。如果你只是想拔出查询字符串参数TRANSACTION_ID的价值,那么这将做的工作适合你:
[&?]transaction_id=([^&]+)
在你的OP,你有嵌套括号。括号仅用于字符类;你不能嵌套它们。
而是使用括号。圆括号用于两件事:指示嵌套或分组,并将值“捕获”到程序中的match []数组中。
至于识别查询字符串的其余部分,你不应该匹配嵌入空格,如你的例子&counterparty=Pretty Flower Florist
;你应该期望空格被编码为+或%20。
更新:
此正则表达式片段将匹配您输入网址的查询字符串部分:
([&?]([^=]+)(=([^&]+))?)*
这不是查询字符串规则精确的重述,但你可以用它捕获参数名称和值。这部分
([^=]+)
拍摄参数的名称,而这部分
([^&]+)
捕捉参数值,如果有的话。
我想编写一个正则表达式来匹配像'&transaction_id = 8768JKHKJG19322'这样的字符串。这里会有许多重复的字段。 &PAR1 =值1&PAR2 =值2&PAR3 =值3。所以一个匹配重复模式的正则表达式就是我正在寻找的。 – cppcoder 2012-04-19 10:15:21
你可能想要添加你想要实现的功能... – Stefan 2012-04-18 09:18:44