正则表达式停止捕获组在?符号

时间:2017-01-18 23:58:36

标签: python regex

我正在尝试在这些字符串中捕获"thing1""thing2"

http://www.example.com/stuff1/thing1   
http://www.example.com/stuff2/thing2?id=9999

在python中,我尝试了这个:

re.findall('^.*(?:stuff1/|stuff2/)(.*)\??.*$', url)

第一个示例网址适用于我的代码,但第二个示例提供:

['thing2?id=9999']

我打算让捕获组不包含"?"

2 个答案:

答案 0 :(得分:1)

试试这个:

import re
re.findall('^.*(?:stuff\d\/)(.*?)(?=\?|$).*$', url)

在此正则表达式中,我使用Positive Lookahead (?= )排除?

答案 1 :(得分:1)

只需捕获“非runOnUiThread(new Runnable() { public void run() { // Update UI elements }}); ”字符:

?