2016-09-07 2 views
0

空白に囲まれた中心の文字をどのように見つけることができますか?Pythonは空白で囲まれた文字を検出します

1 + 1

私がもし/ else文で使用するために途中で+を分離できるようにしたいと思います。

申し訳ありませんが、私はあまりにも明確ではない、私はPythonの初心者です。

+0

あなたの質問ISN」あなたはいくつかの正規表現の解決策が必要ですか? –

答えて

5

私はあなたがデフォルトで空白に分割するsplit()メソッドのようなものを探していると思います。

s="1 + 1" 
a=re.compile(r' (?P<sym>.) ') 
a.search(s).group('sym') 
+0

ありがとうございます!文字列に含まれるチャンクの数を検出できますか? – MasterHolbytla

+1

問題ありません! 'len(chunks)'を使って、あなたが持っているチャンクの数を知ることができます。 –

0

を持っていると仮定しますマルチまたはdiv記号:r' ([+-*/]) '。アポストロフィ内のスペースに注意してください。カッコは中央の文字を「捕捉」します。別の文字セットを認識する必要がある場合は、かっこ内のセットを変更してください。

正規表現を扱っていない場合は、reモジュールを読んでください。これらは単純なテキスト処理に非常に便利です。関連する2つの機能は、「文字クラス」(私の例では角括弧)と「カッコを取り込む」(丸い括弧)です。

1

文字がプラスまたはマイナスの場合、またはこの正規表現は、スペースで囲まれた単一の文字を検出します:

は、我々はあなたが正規表現を使用することができ、文字列にs

s = "1 + 1" 
chunks = s.split() 
print(chunks[1]) # Will print '+' 
0

その後、私は次のように使用したい、あなたの中央の文字を区切るどのように多くのスペースを知らない:

s = '1 + 1' 
middle = filter(None, s.split())[1] 
print middle # + 

ザックによって提供される解決策のようにsplit作品が、単一のスペースよりも多くが存在する場合、返されるリストには''要素の束があり、これはfilter(None,)関数で取り除くことができます。

次に、2番目の要素を抽出するだけです。

我々はステップバイステップでそれを見た場合、ここでどのようにすべてのpythonコンソールを使用した作品であるhttps://eval.in/636622

でアクションでそれを確認してください:

>>> s = '1 + 1' 

>>> s.split() 
['1', '+', '', '', '1'] 

>>> filter(None, s.split()) 
['1', '+', '1'] 

>>> filter(None, s.split())[1] 
'+' 
0
import re 

def find_between(string, start_=' ', end_=' '): 
    re_str = r'{}([-+*/%^]){}'.format(start_, end_) 
    try: 
     return re.search(re_str, string).group(1) 
    except AttributeError: 
     return None 

print(find_between('9 * 5', ' ', ' ')) 
関連する問題