表达式如下:
re.findall("a(.*?)b",'..a12b..a23b..a45b..')
仅为我提供了分组匹配:['12', '23', '45']
。
我如何获得基本匹配,即['a12b', 'a23b', 'a45b']
?
当然我可以手动输入它们,但是有更简单的方法,比如其他语言中的matches[0]
吗?
答案 0 :(得分:2)
只需删除括号即可。这就是返回的内容。
private class DownloadFileTask extends AsyncTask<String, Void, String> {
ProgressDialog pd;
@Override
protected String doInBackground(String... params) {
// Your File Download Code here
}
@Override
protected void onPostExecute(String result) {
pd.dismiss();
}
@Override
protected void onPreExecute() {
pd = new ProgressDialog(yourActivity.this);
pd.setMessage("Please Wait...");
pd.show();
}
@Override
protected void onProgressUpdate(Void... values) {}
}
}
为
添加另一对>>> re.findall("a.*?b",'..a12b..a23b..a45b..')
['a12b', 'a23b', 'a45b']
注意(解释器中的_获取最后输出的值)
答案 1 :(得分:0)
如果模式中存在一个或多个组,则返回组列表
所以只需删除()
即可返回整个模式。
re.findall("a.*?b",'..a12b..a23b..a45b..')
如果必须使用组,请使用非捕获组:
re.findall("a(?:.*?)b",'..a12b..a23b..a45b..')