如何匹配''之间的字符串,后跟“video_url:”文本

时间:2016-04-10 20:42:28

标签: python regex

我有一个带有一些Javascript代码的html字符串:

/* <![CDATA[ */
...
var flashvars = {
video_id: '94577',
license_code: '38f7x%48',
video_url: 'http://www.domain.com/handy/url/f1d571a.mp4/?br=1114',
postfix: '.mp4',
video_url_text: '720p'
...

我想在单引号之间提取字符串,后跟文本video_url:。我尝试了一些正则表达式,但我无法找到合适的表达式。

我认为将URL视为两个具体字符(单引号'')之间的字符串是一个好主意。这种方式应该可以避免很多复杂性。

1 个答案:

答案 0 :(得分:1)

In [477]: arr = np.random.randint(0,9,(100000))
     ...: seq = np.array([3,6,8,4])
     ...: 

In [478]: np.allclose(search_sequence_numpy(arr,seq),search_sequence_cv2(arr,seq))
Out[478]: True

In [479]: %timeit search_sequence_numpy(arr,seq)
100 loops, best of 3: 11.8 ms per loop

In [480]: %timeit search_sequence_cv2(arr,seq)
10 loops, best of 3: 20.6 ms per loop

用作:

video_url: '(.*)'

输出:import re messy_string = """/* <![CDATA[ */ ... var flashvars = { video_id: '94577', license_code: '38f7x%48', video_url: 'http://www.domain.com/handy/url/f1d571a.mp4/?br=1114', postfix: '.mp4', video_url_text: '720p' ...""" string_parser = re.compile('video_url: \'(.*)\'') parsed_text = string_parser.search(messy_string) print parsed_text.group(1)

更多解释:使用正则表达式,您可以使用括号指定某些分组。所以,我把括号放在链接所在的位置,sans撇号,然后在最后一行调用该分组。这里是正则表达式的链接:https://regex101.com/r/lW6oA7/1