1

次のような、で始まる文字列からテキストを削除したいと思います"\"

 \xf, \africa\87, \ckat\x70, ...

で貪欲な文字を使用してこれを行う方法はありre.subますか?

例えば:

line = re.sub("[\.*]", "", line)

ありがとう!

編集: 入力例:

" lorem ipsum \xe2\x80\x9csianhill7 lorem ipsum"

出力:

" lorem ipsum lorem ipsum"
4

3 に答える 3

3

私があなたの質問を正しく理解しているなら、文からASCII以外の接頭辞をすべて削除してください。

あなたは雇用の有無にかかわらず簡単にそれsingle pass LCを行うことができますordinal matchfilterregex

>>> data = " lorem ipsum \xe2\x80\x9csianhill7 lorem ipsum"
>>> ' '.join(e for e in data.split() if 31 < ord(e[0]) < 127)
'lorem ipsum lorem ipsum'
于 2013-01-21T17:01:14.993 に答える
1
regex = re.compile(r"""
                    \\\S+\s*
                    """, re.VERBOSE)
line = r" lorem ipsum \xe2\x80\x9csianhill7 lorem ipsum"
replaced = regex.sub("", line)

「\」をエスケープ文字としてではなく通常の文字として扱うように Python に指示する必要があることに注意してください。これは、文字列の前に r を追加することによって行われます。

また、「\」で始まり、次の空白文字までのすべてのテキストを削除する必要があると仮定します。

于 2013-01-21T16:58:19.167 に答える
1

一致する式は次のとおりです。

[\b\\][\w]+,?

そして、lorem ipsum の入力テキストを使用すると、上記の式は、削除したい内部の単語のみに一致します:)

ルーブルの例

,文字列内に一致する他の正規表現を追加し*、その後の0以上に使用しました\

[\b\\][\w.,]*

もう一つの例

于 2013-01-21T16:39:03.230 に答える