Python正则表达式提取子字符串

时间:2014-10-31 06:58:38

标签: python regex

我有一个字符串

" request.addParameter('page','/TMRMKUOHY/RPM/Store/srrreVkew.jsp?resODFlag','N','',true,false); "

我想提取部分

" '/TMRMKUOHY/RPM/Store/srrreVkew.jsp?resODFlag' "

这个字符串。我尝试了几种正则表达式的组合(在python中使用re模块),但是找不到确切的所需模式,它给出了主字符串中的子字符串。

4 个答案:

答案 0 :(得分:1)

'([^']+)'

你可以试试这个。

执行print re.findall(r"'([^']+)'",x)[1]

这里x是你的字符串。基本上它是提取第二组。

参见演示。

http://regex101.com/r/yG7zB9/2

答案 1 :(得分:0)

使用正则表达式

'\/[^']+'

代码可以写成

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'"

答案 2 :(得分:0)

好像你想要这样的东西,

>>> 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'

答案 3 :(得分:0)

您不能使用regex split()来使用>>> s.split(',')[1] "'/TMRMKUOHY/RPM/Store/srrreVkew.jsp?resODFlag'"

{{1}}