0

私がこの文字列を持っているとしましょう:

myString="'Hello'+yes+'Whats hello'6"

引用符で囲まれたすべてを削除する方法を探しています

したがって、次のようになります。

"+yes+"

なぜなら、「Hello」と「Whatshello」は引用符で囲まれているからです。そして6は数字です。

これを行う方法はありますか?たぶん正規表現を使用していますか?Forループでこれを試してみましたが、私のロジックはそれほど優れていなかったと思います。

4

1 に答える 1

6
Python 2.7.2 (default, Aug 19 2011, 20:41:43) [GCC] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> re.sub(r"('[^']*'|\d)", "", "'Hello'+yes+'Whats hello'6")
'+yes+'
>>>

(...|...)何かに一致します。'[^']*'引用符内の引用符以外のものに一致します。\d数字に一致します。 re.sub(pattern, replacement, string)パターンの各インスタンスを置換で置き換えます。

ps'は、結果のはPythonが文字列を引用符で囲んでいるだけであることに注意してください。(Pythonでは一重引用符または二重引用符を使用できます。文字列自体に文字列が含まれていない場合、Pythonは文字列を出力するときに一重引用符を優先します)。

更新-これはあなたが望むものですか?

>>> import re
>>> re.sub(r"('[^']*'|(?<![a-zA-Z])\d(?![a-zA-Z]))", "", "'Hello'+yes+'Whats hello'6")
'+yes+'
>>> re.sub(r"('[^']*'|(?<![a-zA-Z])\d(?![a-zA-Z]))", "", "+ye5s")
'+ye5s'
于 2012-05-17T01:44:47.720 に答える