0

我想拆分这个字符串def Hello(self,event):,以便只剩Hello下分隔符def,然后我猜是():. 我怎样才能在python中做到这一点?

4

4 回答 4

4

你在寻找类似的东西

re.findall('^def ([^(]+)', 'def Hello(self, asdf):')
于 2012-10-30T22:31:53.627 回答
2

使用正则表达式模式

^def\s+(\w+)\((.*?)\)
于 2012-10-30T22:32:01.443 回答
1

我建议对此类使用正则表达式(请参阅其他示例),但要在这里回答您的问题是使用以下解决方案split

In [1]: str = "def Hello(self,event):"
In [2]: str.split(' ')[1].split('(')[0]
于 2012-10-30T22:37:59.463 回答
0

这是使用正则表达式的一种选择:

import re
re.search(r'def\s+([^)\s]*)\s*\(', your_string).group(1)

例子:

>>> re.search(r'def\s+([^)\s]*)\s*\(', 'def Hello(self, asdf):').group(1)
'Hello'
>>> re.search(r'def\s+([^)\s]*)\s*\(', 'def  Hello  (self, asdf):').group(1)
'Hello'

解释:

def         # literal string 'def'
\s+         # one or more whitespace characters
(           # start capture group 1
  [^)\s]*     # any number of characters that are not whitespace or '('
)           # end of capture group 1
\s*         # zero or more whitespace characters
\(          # opening parentheses
于 2012-10-30T22:35:02.520 回答