Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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:Regex提取在括号之间找到的URL的一部分_Python_Regex - Fatal编程技术网

Python:Regex提取在括号之间找到的URL的一部分

Python:Regex提取在括号之间找到的URL的一部分,python,regex,Python,Regex,我有一个格式奇怪的URL。我必须提取“()”中的内容 示例URL:http://sampleurl.com/(K(ThinkCode))/profile/view.aspx 如果我能从中提取出ThinkCode,我将是一个快乐的人!我在正则表达式中很难使用特殊字符,比如“(”和“/”。如果你想在正则表达式中使用特殊字符,你需要对它们进行转义,比如\(,\/,\) 在正则表达式中,匹配嵌套括号内的内容是一件非常麻烦的事情。如果该格式始终相同,则可以使用以下方法: \(.*?\((.*?)\).*?

我有一个格式奇怪的URL。我必须提取“()”中的内容

示例URL:
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)