Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式获取url字符串_Regex_Preg Match - Fatal编程技术网

Regex 正则表达式获取url字符串

Regex 正则表达式获取url字符串,regex,preg-match,Regex,Preg Match,我正在尝试在[link=和]之间获取youtube url 使用此代码。为什么不起作用 代码 (?<=[link=\s).*(?=\s]) 我需要得到http://www.youtube.com/watch?feature=player_embedded&v=Fh3knetKm5U简单地说: \[link=(.*?)\] 你使用lookbehinds有什么原因吗 更重要的是,看起来您正计划实现文本格式。您是否考虑过像或那样使用库 使用上述正则表达式的示例: >>> i

我正在尝试在[link=和]之间获取youtube url 使用此代码。为什么不起作用

代码

(?<=[link=\s).*(?=\s])
我需要得到
http://www.youtube.com/watch?feature=player_embedded&v=Fh3knetKm5U

简单地说:

\[link=(.*?)\]
你使用lookbehinds有什么原因吗

更重要的是,看起来您正计划实现文本格式。您是否考虑过像或那样使用库

使用上述正则表达式的示例:

>>> import re
>>> p = re.compile(r'\[link=(.*?)\]')
>>> txt = '''a very long text before this
...      [link=http://www.youtube.com/watch?feature=player_embedded&v=Fh3knetKm5U]and some'''
>>> p.findall(txt)
['http://www.youtube.com/watch?feature=player_embedded&v=Fh3knetKm5U']

您不必要地使用了“向前看”和“向后看”。这些对你来说很简单

\[link=(\S+)\]

\[link=([^\]]*)\]

\[link=(.+)\]

\[link=(.*?)\]

什么不起作用?代码在哪里?(?为什么不
\[link=([^]]*)]
?不。我只是想从一篇长文本中获取url。我已经更新了我的问题
\[link=(\S+)\]

\[link=([^\]]*)\]

\[link=(.+)\]

\[link=(.*?)\]