2016-04-05 1 views
0

私はこのような文字列:ないPythonの正規表現と単語内の単一引用符のすべての回出てくる見つける方法

の「name」:「Janyaのタイディライト」が

私がしたいです両側に文字で囲まれていない限り、一重引用符のすべてを二重引用符で置き換えてください。言い換えれば、私はJanya'sにあるものを除いたすべての一重引用符を二重引用符にする必要があります。私はこれがうまくいくと思ったが、そうはしなかった。

re_string = '\'(?![a-z])|\'(?=[a-z])' 
re.sub(re_string, '"', "'name': 'Janya's Thai Delight'") 
# results in: "name": "Janya"s Thai Delight" 

期待される結果:"name": "Janya's Thai Delight"

+0

だからあなたの期待される結果は何ですか? –

+0

@noob予想される結果は\ "name \":\ "Janyaのタイの喜び\" "' –

+0

でなければなりません。 –

答えて

0

は、次の正規表現を試してみてください。

正規表現:(?<![a-zA-Z])'|'(?![a-zA-Z])"

説明と交換してください:

  • (?<![a-zA-Z])'マッチは文字が先行しないアポストロフィ。

  • '(?![a-zA-Z])は、アポストロフィに続けて文字が続きません。

Regex101 Demo

+1

ありがとうございました! –

+0

@PadraicCunningham:その場合、正規表現は変更できますが、何か**何かがそこにあるのでしょうか? OPは何も指定しなかった。彼はアルファベットにしか関心がないようだ。 –

関連する問題