![](/img/trans.png)
[英]Python: Extract substring that matches regular expression in a string
[英]Python Regular expression to extract a substring
我有一個弦
" 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'
您不必強制使用regex
,可以使用split()
:
>>> s.split(',')[1]
"'/TMRMKUOHY/RPM/Store/srrreVkew.jsp?resODFlag'"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.