我想删除围绕子字符串的引号,但我希望保留不围绕任何子字符串的引号。
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'
之类的独立引号,因为它们代表了单位长度(以英寸和英尺为单位)。
我该怎么做?
答案 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