0

正しい正規表現を作成するか、解析しているファイルからコンマを削除するだけで疲れ果てました。基本的に、特定の文字列に一致し、その文字列に続くものはすべてコンマまで一致します。必要ですコンマを含まない、コンマの前の部分文字列を取得するために、これを正規表現で行うか、コードのさらに下のコンマを削除できると思います。

私はこれにかなり慣れていないので、おそらく基本的なものですが、検索で正しいものを見つけることができないようです

これが私のコードです:

import re

str = "FullName=TECIBW04 TECIBW04, TargetResource=k2vFe6yPvBoEdrmrE9t3i5UE2muLVW,"

match = re.search(r'FullName=.+?,', str)


if match:
    print match.group()  ##'found a match'
else:
    print 'ainnussin zer'

私は得る:

FullName=TECIBW04 TECIBW04,

素晴らしい...必要なものを取り戻しています(そして少し余分に)。私は実際にはコンマを望んでいません。

その吸盤を取り除く、または含めないための最良の方法は何ですか?

4

5 に答える 5

2

ここではコンマ,が区切り文字であるため、正規表現で次のように否定してください

match = re.search(r'FullName=[^,]+', str)
于 2013-09-13T21:15:50.050 に答える
1

コンマを除くすべてを保存グループに入れます。

match = re.search(r'(FullName=.+?),', str)

if match: print match.group(1) ##'found a match' else: print 'ainnussin zer'

版画

FullName=TECIBW04 TECIBW04
于 2013-09-13T21:13:56.093 に答える
1

で使ってみsplitては,どうですか?

str.split(',')[0]

編集

これらは、正規表現なしでそれを行う方法です。

文字列が別の部分文字列で始まるかどうかを確認するには、次を使用できます

if str.startswith("FullName="): 
    print str.split(',')[0]
else:
    print "ainnussin zer"

これを1行で行うには、試すことができます

print str.split(',')[0] if str.startswith("FullName=") else "ainnussin zer"
于 2013-09-13T21:14:56.867 に答える
1

str.partition も使用できます。

>>> str = "FullName=TECIBW04 TECIBW04, TargetResource=k2vFe6yPvBoEdrmrE9t3i5UE2muLVW,"
>>> str.partition(',')
('FullName=TECIBW04 TECIBW04', ',', ' TargetResource=k2vFe6yPvBoEdrmrE9t3i5UE2muLVW,')
>>> str.partition(',')[0]
'FullName=TECIBW04 TECIBW04'

正規表現を使用する場合は、これを使用します。

match=re.search(r'^FullName=[^,]+',str)
if match:
    print match.group(0)  ##'found a match'
else:
    print 'ainnussin zer'

または、 の RH をキャプチャしようとしている場合は、次のようになります=

match=re.search(r'^FullName=([^,]+)',str)
if match:
    print match.group(1)  ##'found a match'
else:
    print 'ainnussin zer'
于 2013-09-13T21:16:00.283 に答える
0

一致させたいものをキャプチャ グループ内に配置します。

m = re.search(r'(FullName=.*?),', str)
if m:
   print m.group(1)
于 2013-09-13T22:47:47.137 に答える