URL查询参数中的下划线是否有效?

时间:2014-11-13 03:40:18

标签: python http url

我注意到2014年由rackspace生成的URI实用程序python库有一个parse_query_string方法,它将删除下划线:

>>> parse_query_string("_id=foo")
{"id":"foo"}

这是不好的行为吗?这是他们正在使用的正则表达式:

_QS_PATTERN = re.compile(r'(?<![0-9])([a-zA-Z][a-zA-Z_0-9\-.]*)=([^&]+)')

我注意到删除第一个a-zA-Z集使其按预期工作:

_QS_PATTERN = re.compile(r'(?<![0-9])([a-zA-Z_0-9\-.]*)=([^&]+)')

知道他们为什么这样做了吗?

1 个答案:

答案 0 :(得分:0)

模式与_不匹配,因此您必须重新定义它以获得_

(?<![0-9])([_a-zA-Z][a-zA-Z_0-9\-.]*)=([^&]+)