字符串中间的Python正则表达式

时间:2018-10-25 02:50:39

标签: python regex

想知道这是否是在Python中使用Regex的正确方法。基本上,我希望能够使用正则表达式模式设置CORS标头。

我的URL字符串是 https://([a-zA-Z0-9-]+[.])*some.subdomain.com

在运行时此解析是否正确,是否可以在“ some”之前包含任何字母加破折号?

将正确设置标题吗?例如,当用户进入

https://e-g.some.subdomain.com

使用正则表达式模式设置的CORS标头是否允许该URL工作?

编辑:

经过研究,我是否需要使用'r'

SOME_URL = r'https://([a-zA-Z0-9-]+[.])*some.subdomain.com'

1 个答案:

答案 0 :(得分:0)

头和尾几乎是恒定的,因此可以将它们匹配为简单的字符串。

import sys
import re

pattern = re.compile("https://[a-zA-Z0-9-]+\.some.subdomain.com")

del(sys.argv[0]) # remove the exename
for url in sys.argv:
    print("URL: [" + url + "] -> "+ str(pattern.match(url) != None))

哪个给予:

$ python py_regex.py https://blah.some.subdomain.com https://w#e.some.subdomain.com https://e-g.some.subdomain.com https://another-domain.com
URL: [https://blah.some.subdomain.com] -> True
URL: [https://w#e.some.subdomain.com] -> False
URL: [https://e-g.some.subdomain.com] -> True
URL: [https://another-domain.com] -> False