如何使用一个正则表达式从以下字符串中获取值?
/*##debug_string:value/##*/
或
/*##debug_string:1234/##*/
或
/*##debug_string:http://stackoverflow.com//##*/
结果应为
value
1234
http://stackoverflow.com/
答案 0 :(得分:2)
答案 1 :(得分:2)
试图阅读你的模式背后
re.findall("/\*##debug_string:(.*?)/##\*/", your_string)
请注意,由于您未逃避*
,因此您的变体无效。在正则表达式中,*
表示重复前一个字符/组。如果您的确是*
字符,则必须使用\*
。
import re
print re.findall("/\*##debug_string:(.*?)/##\*/", "/*##debug_string:value/##*/")
print re.findall("/\*##debug_string:(.*?)/##\*/", "/*##debug_string:1234/##*/")
print re.findall("/\*##debug_string:(.*?)/##\*/", "/*##debug_string:http://stackoverflow.com//##*/")
执行为:
['value']
['1234']
['http://stackoverflow.com/']
编辑:好的,我看到你可以拥有一个网址。我修改了模式以考虑它。
答案 2 :(得分:1)
你的正则表达式将是:.*:(.*)/.+
。第1组将是您正在寻找的。但是,这是一个真正包容的正则表达式,您可能希望发布更多详细信息,以便您可以创建更多限制。
答案 3 :(得分:1)
假设格式保持一致:
re.findall('debug_string:([^\/]+)\/##', string)