我有一個字符串Python提取子串的正則表達式
" request.addParameter('page','/TMRMKUOHY/RPM/Store/srrreVkew.jsp?resODFlag','N','',true,false); "
。
我想提取部分
" '/TMRMKUOHY/RPM/Store/srrreVkew.jsp?resODFlag' "
出這個字符串。我嘗試了幾種正則表達式的組合(在Python中使用re模塊),但無法找到確切的所需模式,它使主串中的子串不存在。
我有一個字符串Python提取子串的正則表達式
" request.addParameter('page','/TMRMKUOHY/RPM/Store/srrreVkew.jsp?resODFlag','N','',true,false); "
。
我想提取部分
" '/TMRMKUOHY/RPM/Store/srrreVkew.jsp?resODFlag' "
出這個字符串。我嘗試了幾種正則表達式的組合(在Python中使用re模塊),但無法找到確切的所需模式,它使主串中的子串不存在。
'([^']+)'
您可以試試這個。
做print re.findall(r"'([^']+)'",x)[1]
。
這裏x是你的字符串。基本上它是提取第二組。
查看演示。
使用正則表達式
'\/[^']+'
的代碼可以寫成
x=" request.addParameter('page','/TMRMKUOHY/RPM/Store/srrreVkew.jsp?resODFlag','N','',true,false); ".
re.findall(r"'\/[^']+'", x)"
["'/TMRMKUOHY/RPM/Store/srrreVkew.jsp?resODFlag'"]
見正則表達式是如何工作的http://regex101.com/r/pK9mI8/1
你也可以用search
功能來搜索並找到串匹配模式爲
re.search(r"'\/[^']+'", x).group()
"'/TMRMKUOHY/RPM/Store/srrreVkew.jsp?resODFlag'"
好像你想是這樣的,
>>> import re
>>> s = " request.addParameter('page','/TMRMKUOHY/RPM/Store/srrreVkew.jsp?resODFlag','N','',true,false); "
>>> re.search(r"'(/[^']*)'", s).group(1)
'/TMRMKUOHY/RPM/Store/srrreVkew.jsp?resODFlag'
你能不能把這些組合你嘗試進入你的問題的正則表達式? – Jerry 2014-10-31 06:59:31
這個字符串總是以'/' – nu11p01n73R 2014-10-31 07:04:03
開始pat = re.search(「\'\/[az] * [AZ] * [./+]」,string1) pat = re.search(「\' \(。+)\?(。\ w)「,string1) pat = re.search(」\'\ /(。+)?(。\ w *)「,string1) pat = re.search (「\'\ /(。+)?(。\ W *)」,string1) pat = re.search(「\'\ /(。+)?(\ w * \ d *)\'」, string1) pat = re.search(「\'\ /(。+)?(\ w * \ d *)\'[^,]」,string1) pat = re.search(「\'\ /( \ w +)?'「,string1) – harveyD 2014-10-31 07:04:07