簡體   English   中英

Python正則表達式提取子字符串

[英]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是您的字符串,基本上是提取第二組。

參見演示。

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

使用正則表達式

'\/[^']+'

該代碼可以寫成

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM