Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.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
Python和;关于;_Python_Regex - Fatal编程技术网

Python和;关于;

Python和;关于;,python,regex,Python,Regex,我有一个关于python中Regex的教程,解释了如何在python中使用re模块,我想从A标记中获取URL,因此了解Regex后,我编写了正确的表达式,并在我选择的Regex测试应用程序中对其进行了测试,确保它能够正常工作。当放入python时,它失败了 我费了好大劲才发现这个问题,它自动地希望您的模式位于字符串的开头。我已找到解决方案,但我想知道如何更改: regex = ".*(a_regex_of_pure_awesomeness)" 进入 好的,这是一个标准的URL正则表达式,但我想

我有一个关于python中Regex的教程,解释了如何在python中使用re模块,我想从A标记中获取URL,因此了解Regex后,我编写了正确的表达式,并在我选择的Regex测试应用程序中对其进行了测试,确保它能够正常工作。当放入python时,它失败了

我费了好大劲才发现这个问题,它自动地希望您的模式位于字符串的开头。我已找到解决方案,但我想知道如何更改:

regex = ".*(a_regex_of_pure_awesomeness)"
进入


好的,这是一个标准的URL正则表达式,但我想避免任何关于我想要摆脱什么的潜在混淆,并可能假装有趣。

您使用的是
re.match()
还是
re.search()
方法?我的理解是,
re.match()
在表达式的开头假设一个“
^
”,并且只在文本的开头进行搜索,而
re.search()
的行为更像Perl正则表达式,如果包含“
^
”则只匹配文本的开头在你表达的开始。希望能有所帮助。

在Python中,“匹配”和“搜索”是有区别的;“匹配”仅在字符串的开头查找模式,而“搜索”则在字符串中的任何位置查找开始的模式


>>导入re
>>>模式=重新编译(“url”)
>>>string=“url”
>>>pattern.match(字符串)
>>>pattern.search(字符串)

您可能被重新搜索和重新匹配的不同方法绊倒了。
regex = "a_regex_of_pure_awesomeness"
>>> import re
>>> pattern = re.compile("url")
>>> string = "   url"
>>> pattern.match(string)
>>> pattern.search(string)
<_sre.SRE_Match object at 0xb7f7a6e8>
from BeautifulSoup import BeautifulSoup 

soup = BeautifulSoup(your_html)
for a in soup.findAll('a', href=True):
    # do something with `a` w/ href attribute
    print a['href']