[英]python regex pattern to extract value between two characters
我试图以url的形式从URL中提取id号
http://www.domain.com/some-slug-here/person/237570
http://www.domain.com/person/237570
这些网址中的任何一个也可以在它们上面有参数
http://www.domain.com/some-slug-here/person/237570?q=some+search+string
http://www.domain.com/person/237570?q=some+search+string
我已经尝试了以下表达式从上面的网址中捕获'237570'的id值,但是每一个都有效,但确实可以在所有四个url场景中工作。
(?<=person\/)(.*)(?=\?)
(?<=person\/)(.*)(?=\?|\z)
(?<=person\/)(.*)(?=\??*)
我所看到的是它正在获得237570,但包括? 和在网址后面的字符。 当你点击?,/或字符串的结尾时,我怎么能说停止捕获?
串:
http://www.domain.com/some-slug-here/person/1234?q=some+search+string
http://www.domain.com/person/3456?q=some+search+string
http://www.domain.com/some-slug-here/person/5678
http://www.domain.com/person/7890
正则表达式:
person\/(\d{1,})
输出:
>>> regex.findall(string)
[u'1234', u'3456', u'5678', u'7890']
不要使用.*
来匹配ID。 .
将匹配任何字符(换行符除外,除非您使用DOTALL选项)。 只需匹配一堆数字: (.*)
- > (\\d+)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.