Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.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 如何在';(';和下一个空白_Python_Regex - Fatal编程技术网

Python 如何在';(';和下一个空白

Python 如何在';(';和下一个空白,python,regex,Python,Regex,因此,我有一组字符串,它们具有以下基本设置TeamName(GMName-Tier)我正在尝试找到一种从该字符串获取GMName的好方法 我尝试使用这个正则表达式: \(\w*\s 但是这给了我(GMName,然后我必须以某种方式对其进行解析才能得到GMName。是否有一个regex或一些Python函数,我可以在一行中使用它来得到我想要的东西?您可以对打开的paren使用lookback,或者使用一个捕获组 回头看 >>> pat = re.compile(r""" ...

因此,我有一组字符串,它们具有以下基本设置
TeamName(GMName-Tier)
我正在尝试找到一种从该字符串获取GMName的好方法

我尝试使用这个正则表达式:
\(\w*\s

但是这给了我
(GMName
,然后我必须以某种方式对其进行解析才能得到GMName。是否有一个regex或一些Python函数,我可以在一行中使用它来得到我想要的东西?

您可以对打开的paren使用lookback,或者使用一个捕获组

回头看

>>> pat = re.compile(r"""
... (?<=\()       # asserts that a literal ( precedes the following:
... \S+           # one or more non-spaces
... """, re.X)
>>> pat.search("TeamName (GMName - Tier)").group()
"GMName"

如果只想检查周围的字符串而不将其捕获到匹配文本中,则需要使用look arounds

(?<=\()\w*\b
印刷品

['GMName']

只需将
re.findall(r'\(\w+\s',s)
re.findall
与包含单个捕获组的模式一起使用即可。无需进行查找。很高兴提供帮助:)
import re
s = 'TeamName (GMName - Tier)'
arr = re.findall(r'(?<=\()\w*\b', s)
print(arr)
['GMName']