我一直试图用反斜杠单引号替换单引号。

我一直在尝试此操作,但是它导致带有两个反斜杠和单引号的字符串,或者没有任何反斜杠和单引号的字符串。

re.sub("'","\'","Newton's method")


以上结果在O / P中:Newton's method

re.sub("'","\\'","Newton's method")导致Newton\\'s method

我需要Newton\'s method作为输出。

任何帮助表示赞赏。

更新:

这是一个在解析后创建并使用html形式传递的字符串。在这里"Newton's method"会导致问题,因为它会在get请求之后使json变形。

{'1': u'Newton metre', '0': u'Newton', '3': u'Newton (unit)', '2': u'Newton Centre, Massachusetts', '5': u'NewtonCotes formulas', '4': u'.30 Newton', '7': u'Newton Highlands, Massachusetts', '6': u"Newton's method", '9': u'List of things named after Isaac Newton', '8': u'Bill Newton'}


html表单通过get请求获取此信息,而后端则错误地获取它。

 {'1': u'Newton metre', '0': u'Newton', '3': u'Newton (unit)', '2': u'Newton Centre, Massachusetts', '5': u'NewtonCotes formulas', '4': u'.30 Newton', '7': u'Newton Highlands, Massachusetts', '6': u

最佳答案

您需要转义\或使用原始字符串文字:

>>> re.sub("'", "\\'","Newton's method")
"Newton\\'s method"
>>> re.sub("'", r"\'","Newton's method")
"Newton\\'s method"


顺便说一句,在这种情况下,您不需要使用正则表达式。 str.replace就足够了:

>>> "Newton's method".replace(r"'", r"\'")
"Newton\\'s method"




更新

\\是python repr在字符串中表示反斜杠字符的一种方式。如果打印字符串,您将看到它是一个\

>>> "Newton\\'s method"
"Newton\\'s method"
>>> print("Newton\\'s method")
Newton\'s method

关于python - 在Python中用反斜杠单引号替换单引号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34396268/

10-12 22:46