删除围绕子字符串的引用,但保留独立的引用

时间:2019-03-24 08:07:12

标签: python regex

我想删除围绕子字符串的引号,但我希望保留不围绕任何子字符串的引号。

dq = 'EXAMPLE "DOUBLE QUOTE" bla 8.54" (inches) long'   
>>> 'EXAMPLE "DOUBLE QUOTE" bla 8.54" (inches) long'

ds = 'EXAMPLE \'SINGLE QUOTE\' bla 1900\' (feet) long'
>>> "EXAMPLE 'SINGLE QUOTE' bla 1900' (feet) long"

因此,我想删除诸如"DOUBLE QUOTE"'SINGLE QUOTE'之类的引号,但我需要保留诸如8.54"1900'之类的独立引号,因为它们代表了单位长度(以英寸和英尺为单位)。

我该怎么做?

1 个答案:

答案 0 :(得分:4)

如果您想将带引号的字符串放在空格之后或字符串的开头(使用(\s|^)组,则可以将单位与它们区分开:

import re

dq = 'EXAMPLE 15" "DOUBLE QUOTE" bla 8.54" (inches) long'  # added another 15" string

print(re.sub('(\s|^)[\'"](.*?)[\'"]',r"\1\2",dq))  # non-greedy substitution

输出:

EXAMPLE 15" DOUBLE QUOTE bla 8.54" (inches) long