この文字列を分割しdef Hello(self,event):
て、 だけHello
が残るようにします。区切り文字は最初に になりdef
、次に():
. Pythonでこれを行うにはどうすればよいですか?
user1786283
質問する
148 次
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 に答える