我正在编写一个URL解析器来获取一些值以便执行一些统计。 例如,我只想解析用户名:
uSSer=andoni&password=contra
(我只想从网址获取uSSer的值或某些可能的字段)并使用此正则表达式:
.*?[u,U][s,S][e,E][r,R].*?=(.*)&
如果参数uSSer在&之前,它可以工作。 URL上的令牌,但如果它是URL中的最后一个字段?像这样:
parameter1=foo&password=contra&uSSer=andoni
答案 0 :(得分:1)
你的正则表达式看起来很有趣。我删除了.*?
和,
。
(^|&)[uU][sS][sS][eE][rR]=([^&]*)
它以&
或任何内容开头。只要没有找到&符号,用户就可以了。
你可以在这里测试一下: http://regex101.com/r/wI5oX2/1
答案 1 :(得分:0)
将您想要用于分隔符的任何内容放入班级
这只适用于Python支持lookbehinds的情况
如果您打算不区分大小写,请将(?i)
放在正则表达式的头部
或者,如果Python不支持内联修饰符,请将其作为函数选项
如果它不支持,请像您一样使用[aA]
。
# (?<=[&/?\r\n])uSSer=([^&/?\r\n]+)
(?<= [&/?\r\n] )
uSSer=
( [^&/?\r\n]+ ) # (1)