Python:Regex提取在括号之间找到的URL的一部分
我有一个格式奇怪的URL。我必须提取“()”中的内容 示例URL:Python:Regex提取在括号之间找到的URL的一部分,python,regex,Python,Regex,我有一个格式奇怪的URL。我必须提取“()”中的内容 示例URL:http://sampleurl.com/(K(ThinkCode))/profile/view.aspx 如果我能从中提取出ThinkCode,我将是一个快乐的人!我在正则表达式中很难使用特殊字符,比如“(”和“/”。如果你想在正则表达式中使用特殊字符,你需要对它们进行转义,比如\(,\/,\) 在正则表达式中,匹配嵌套括号内的内容是一件非常麻烦的事情。如果该格式始终相同,则可以使用以下方法: \(.*?\((.*?)\).*?
http://sampleurl.com/(K(ThinkCode))/profile/view.aspx
如果我能从中提取出
ThinkCode
,我将是一个快乐的人!我在正则表达式中很难使用特殊字符,比如“(”和“/”。如果你想在正则表达式中使用特殊字符,你需要对它们进行转义,比如\(
,\/
,\
)
在正则表达式中,匹配嵌套括号内的内容是一件非常麻烦的事情。如果该格式始终相同,则可以使用以下方法:
\(.*?\((.*?)\).*?\)
基本上:找到一个打开的paren,匹配字符直到找到另一个打开的paren,对字符进行分组直到我看到一个关闭的paren,然后确保其中还有两个关闭的paren。如果你想在正则表达式中有特殊字符,你需要对它们进行转义,例如
\(
,\/
,\
,\
)
>>> foo = re.compile( r"(?<=\(K\()[^\)]*" )
>>> foo.findall( r"http://sampleurl.com/(K(ThinkCode))/profile/view.aspx" )
['ThinkCode']
在正则表达式中,匹配嵌套括号内的内容是一件非常麻烦的事情。如果该格式始终相同,则可以使用以下方法:
\(.*?\((.*?)\).*?\)
基本上:找到一个打开的paren,匹配字符直到找到另一个打开的paren,对字符进行分组直到我看到一个关闭的paren,然后确保其中还有两个关闭的paren。
>>foo=re.compile(r)(?>>foo=re.compile(r)(?这并不难,特别是因为/
实际上在Python正则表达式中不是特殊字符。您只需将所需的文本参数反斜杠即可。这样如何:
>>> foo = re.compile( r"(?<=\(K\()[^\)]*" )
>>> foo.findall( r"http://sampleurl.com/(K(ThinkCode))/profile/view.aspx" )
['ThinkCode']
s = "http://sampleurl.com/(K(ThinkCode))/profile/view.aspx"
mo = re.match(r"http://sampleurl\.com/\(K\(([^)]+)\)\)/profile.view\.aspx", s);
print mo.group(1)
请注意使用r”“
原始字符串来保留正则表达式模式字符串中的反斜杠。这并不难,特别是因为/
在Python正则表达式中实际上不是特殊字符。您只需将所需的文本参数反斜杠即可。如何:
s = "http://sampleurl.com/(K(ThinkCode))/profile/view.aspx"
mo = re.match(r"http://sampleurl\.com/\(K\(([^)]+)\)\)/profile.view\.aspx", s);
print mo.group(1)
mystr = "http://sampleurl.com/(K(ThinkCode))/profile/view.aspx"
import re
re.sub(r'^.*\((\w+)\).*',r'\1',mystr)
请注意使用r”“
原始字符串来保留正则表达式模式字符串中的反斜杠。请您解释一下正则表达式,这非常有效。我想了解正则表达式是如何工作的,以及它是做什么的。谢谢您的快速回复(:好的,大约十分钟。祝你愉快!=p你能解释一下正则表达式吗,这很好用。我想了解正则表达式是如何工作的,做什么的。谢谢你的快速回复(:好的,大约十分钟。祝你愉快!=p
mystr = "http://sampleurl.com/(K(ThinkCode))/profile/view.aspx"
import re
re.sub(r'^.*\((\w+)\).*',r'\1',mystr)