Python regex-如何在行尾设置可选项

Python regex-如何在行尾设置可选项,python,regex,url,expression,Python,Regex,Url,Expression,我正在编写一个URL解析器来获取一些值,以便进行一些统计。 例如,我只想解析用户名: uSSer=andoni&password=contra (我只想从url中获取uSSer或某个可能字段的值)和im使用此regexp: .*?[u,U][s,S][e,E][r,R].*?=(.*)& 如果参数uSSer位于URL上的&token之前,那么它可以工作,但是如果它是URL中的最后一个字段?像这样: parameter1=foo&password=contra&

我正在编写一个URL解析器来获取一些值,以便进行一些统计。 例如,我只想解析用户名:

uSSer=andoni&password=contra
(我只想从url中获取uSSer或某个可能字段的值)和im使用此regexp:

.*?[u,U][s,S][e,E][r,R].*?=(.*)&
如果参数uSSer位于URL上的&token之前,那么它可以工作,但是如果它是URL中的最后一个字段?像这样:

parameter1=foo&password=contra&uSSer=andoni

你的正则表达式在我看来很有趣。我删除了
*?

(^|&)[uU][sS][sS][eE][rR]=([^&]*)
它以
&
开头,或者什么都没有。只要找不到符号和字符,用户就可以

您可以在此处进行测试:

在类中放入您想要用作分隔符的任何内容。
这仅在Python支持lookbehinds时有效。
如果您打算不区分大小写,请在正则表达式的开头添加一个
(?i)

或者,如果Python不支持内联修饰符,则将其作为函数选项。
如果它不支持这一点,请像这样使用
[aA]

 # (?<=[&/?\r\n])uSSer=([^&/?\r\n]+)

 (?<= [&/?\r\n] )
 uSSer=
 ( [^&/?\r\n]+ )       # (1)

#(?你有一个
*?
us
er
之间。你打算进行这场比赛吗
us=foo&er=bar
?请更具体地说明你的需求。使用Python解决它。这是一个很好的例子:“regex现在我有两个问题”。