私はこのような文字列を持っています:
a = "\"java jobs in delhi\" delhi"
デリーを「」に置き換えたい。ただし、二重引用符の外側にあるデリーのみ。したがって、出力は次のようになります。
"\"java jobs in delhi\""
文字列はサンプル文字列です。部分文字列は必ずしも「delhi」である必要はありません。置換する部分文字列は、入力文字列のどこにでも配置できます。文字列内の引用符で囲まれた部分と引用符で囲まれていない部分の順序と数は固定されていません
.replace()
両方のdelhi部分文字列を置き換えます。rstrip
文字列の最後に表示されるとは限らないため、どちらも使用できません。これどうやってするの?
使用する re.sub
>>> a = "\"java jobs in delhi\" delhi"
>>> re.sub(r'\bdelhi\b(?=(?:"[^"]*"|[^"])*$)', r'', a)
'"java jobs in delhi" '
>>> re.sub(r'\bdelhi\b(?=(?:"[^"]*"|[^"])*$)', r'', a).strip()
'"java jobs in delhi"'
または
>>> re.sub(r'("[^"]*")|delhi', lambda m: m.group(1) if m.group(1) else "", a)
'"java jobs in delhi" '
>>> re.sub(r'("[^"]*")|delhi', lambda m: m.group(1) if m.group(1) else "", a).strip()
'"java jobs in delhi"'
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加