两个字符串之间的字符串的正则表达式?
问题描述:
对不起,我知道这可能是一个重复,但搜索'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])
(如果你只是有一个字符串,多行的,你只能分割字符串转换成线。 )
如果它有点复杂,但使用正则表达式很好。只是查找引号内的网址一个例子是:
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
>>>
您是否正在使用JSON? – 2010-09-28 08:57:27
看起来像JSON数据用';'而不是','给我(当我试图想象文档的其余部分时)。 Python已经集成了JSON支持。 – Residuum 2010-09-28 08:57:28
这是一个长的HTML页面,其中包含一些JavaScript – AP257 2010-09-28 09:19:24