1

左側に重要な文字列があり、右側に重要でないものが1つのスペースで区切られている、長さが不明な可変文字列があります。右側の重要でない情報を削除するにはどうすればよいですか?

rstripを試しましたが、分割できませんでした。

編集:修正が必要な実際の値を配置します。

"NPC_tester_contact() ) ntact()                                                                                                                                                                                                                 "

最初のスペース(閉じ括弧で囲まれたスペース)には、それ自体を含めた後、すべてが重要でないとマークされている必要があります。

編集:出力は " NPC_tester_contact()"!

上に置いた弦を注意深く見てください。その後にもたくさんの空白があります。それがしゃっくりの原因だと思います。

私はここでほとんどの解決策を試しましたが、何もしないか、空白を生成するだけです。

repr(s)私に与えます。

'NPC_me_lvup_event_contact()\x00t()\x00act()\x00act()\x00ntact()\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

「」である必要がありますNPC_me_lvup_event_contact()

ありがとう!

おそらくこれはより良い質問です。文字列に表示される最初の\x00hexの後のすべての文字を削除する方法はありますか?

何らかの理由で、それは時々動作し、常に動作するとは限りません。上記の例は、Levonが投稿した方法で実行されました。

解決策:問題は解決しました。これは、スペースバイトというよりはヌルバイトです。解決策は、「」の代わりに「\x00」を識別子として使用する以下のいずれかです。

みんなありがとう!

4

9 に答える 9

9

新しい文字列データに基づく更新:

文字列が含まれていると仮定sします。

s.split('\x00')[0]

収量

'NPC_me_lvup_event_contact()'

split()は、で指定した文字で区切られた文字列のリストを提供しますsplit。指定されていない場合はスペースが使用されます。この場合、目的の16進文字が使用されます。

于 2012-06-02T15:35:08.723 に答える
2

分割 (' ')[0] を使用

 >>> a = 'aaa bbb'
    >>> a.split(' ')[0]
    'aaa'
    >>> >
于 2012-06-02T15:37:04.750 に答える
1
>>> mystring = 'important useless'
>>> mystring[:mystring.find(' ')]
'important'
于 2012-06-02T15:39:12.563 に答える
1

任意の空白による区切り記号なしの split() 分割:

>>> "asdasd         xyz".split()[0]
'asdasd'
于 2012-06-02T15:39:48.197 に答える
0

これを試してみ てください、あなたの文字列がに保存されていると仮定しますstr
print str[0:str.index(" ")]

それが機能しない場合はコメントしてください、それを解決します。

ここは

私のコード
str = "NPC_tester_contact())ntact()"
印刷str[0:str.index( "")] 出力 NPC_tester_contact() リンク http://ideone.com/i9haI

また、出力を二重引用符で囲む場合は、 `print'"'、str [0:str.index( "")]、'"'

于 2012-06-02T15:52:09.683 に答える
0

split() 関数を使用して、返される最初の項目を取得します。

raw_string = 'NPC_tester_contact() ) ntact()  '
important = raw_string.split(' ')[0]

戻ります:

NPC_tester_contact()
于 2012-06-02T15:37:48.923 に答える
0
str = "important unimportant"
important = str.split(' ')[0]
于 2012-06-02T15:39:17.487 に答える
0

これを試して:

lhs,rhs=s.split()  #lhs is what you want.

これは、実際にスペースが 1 つしかない場合にのみ機能します。

それ以外の場合は、問題を解決できますlhs(ただし、rhs は失われます)。

lhs=s.split()[0]
于 2012-06-02T15:39:26.233 に答える
0

正規表現タイプのソリューションも使用できます。何かのようなもの:

import re

input_string = 'NPC_me_lvup_event_contact()\x00t()\x00act()\x00act()\x00ntact()\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

string_pat = re.compile(r'[a-zA-Z0-9\(\)_]+')
try:
    first_part = string_pat.findall(input_string)[0]
except IndexError:
    # There is nothing of interest for you in this string
    first_part = ''
于 2012-06-02T16:32:53.750 に答える