[英]Regular expression for string between two strings?
抱歉,我知道這可能是重復的,但是在搜索“之間的python正則表達式匹配”之后,我沒有找到任何能回答我問題的信息!
我正在搜索的文檔(很清楚,是一個長長的HTML頁面)在其中(在JavaScript函數中)包含一串字符串,看起來像這樣:
link: '/Hidden/SidebySideGreen/dei1=1204970159862'};
link: '/Hidden/SidebySideYellow/dei1=1204970159862'};
我想提取鏈接(即這些字符串中的引號之間的所有內容)-例如/Hidden/SidebySideYellow/dei1=1204970159862
要獲取鏈接,我知道我需要開始:
re.matchall(regexp, doc_sting)
但是正則regexp
應該是什么?
您問題的答案取決於字符串其余部分的外觀。 如果它們都像此link: '<URL>'};
那么您可以使用簡單的字符串操作非常簡單地完成此操作:
myString = "link: '/Hidden/SidebySideGreen/dei1=1204970159862'};"
print( myString[7:-3] )
(如果只有一個帶有多行的字符串,則可以將字符串分成幾行。)
如果稍微復雜一點,使用正則表達式就可以了。 僅在引號內查找url的一個示例是:
myDoc = """link: '/Hidden/SidebySideGreen/dei1=1204970159862'};
link: '/Hidden/SidebySideYellow/dei1=1204970159862'};"""
print( re.findall( "'([^']+)'", myDoc ) )
根據整個字符串的外觀,您可能還必須包括link:
:
print( re.findall( "link: '([^']+)'", myDoc ) )
我將從以下內容開始:
regexp = "'([^']+)'"
並檢查它是否可以正常工作-我的意思是,如果唯一的條件是字符串位於''之間的一行中,那么它應該是正確的。
使用一些簡單的拆分
>>> s="link: '/Hidden/SidebySideGreen/dei1=1204970159862'};"
>>> s.split("'")
['link: ', '/Hidden/SidebySideGreen/dei1=1204970159862', '};']
>>> for i in s.split("'"):
... if "/" in i:
... print i
...
/Hidden/SidebySideGreen/dei1=1204970159862
>>>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.