如何使用一个正则表达式从以下字符串中获取值?
/*##debug_string:value/##*/
或者
/*##debug_string:1234/##*/
或者
/*##debug_string:http://stackoverflow.com//##*/
结果应该是
value
1234
http://stackoverflow.com/
试图阅读你的模式背后
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/']
编辑:好的,我看到你可以有一个 URL。我已经修改了模式以将其考虑在内。
您的正则表达式将类似于:.*:(.*)/.+
. 第 1 组将是您正在寻找的。然而,这是一个真正具有包容性的正则表达式,您可能希望发布更多详细信息,以便您可以创建更多限制。
假设格式保持一致:
re.findall('debug_string:([^\/]+)\/##', string)