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

正規表現を使用したオプションの 1 つを次に示します。

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 に答える