Python 删除换行返回
我想删除包装到一定宽度的文本的换行符。e、 gPython 删除换行返回,python,word-wrap,Python,Word Wrap,我想删除包装到一定宽度的文本的换行符。e、 g import re x = 'the meaning\nof life' re.sub("([,\w])\n(\w)", "\1 \2", x) 'the meanin\x01 \x02f life' 我想返回生命的意义。我做错了什么?你需要像这样逃避\: >>> import re >>> x = 'the meaning\nof life' >>> re.sub("([,\w])\n(\
import re
x = 'the meaning\nof life'
re.sub("([,\w])\n(\w)", "\1 \2", x)
'the meanin\x01 \x02f life'
我想返回
生命的意义
。我做错了什么?你需要像这样逃避\
:
>>> import re
>>> x = 'the meaning\nof life'
>>> re.sub("([,\w])\n(\w)", "\1 \2", x)
'the meanin\x01 \x02f life'
>>> re.sub("([,\w])\n(\w)", "\\1 \\2", x)
'the meaning of life'
>>> re.sub("([,\w])\n(\w)", r"\1 \2", x)
'the meaning of life'
>>>
如果不转义,则输出为\1
,因此:
>>> '\1'
'\x01'
>>>
这就是为什么我们需要使用'\\\'
或r'\\'
在Python正则表达式中显示信号\
然而,关于这一点,来自:
如果将其放入程序中的字符串中,实际上可能需要使用四个反斜杠(因为字符串解析器在对字符串进行“反转义”时会删除其中两个反斜杠,然后正则表达式需要两个反斜杠来转义正则表达式反斜杠)
以及:
如前所述,正则表达式使用反斜杠字符('\'
)来表示特殊形式或允许在不调用特殊含义的情况下使用特殊字符。这与Python在字符串文本中出于相同目的使用相同字符相冲突
假设您想编写一个RE,该RE与字符串\section
匹配,该字符串可能位于LaTeX文件中。要确定在程序代码中要写什么,请从要匹配的所需字符串开始。接下来,您必须通过在反斜杠和其他元字符前面加上反斜杠来转义它们,从而生成字符串\\section
。必须传递给re.compile()
的结果字符串必须是\\section
。但是,要将其表示为Python字符串文字,必须再次转义两个反斜杠
brittenb建议的另一种方法是,在这种情况下不需要正则表达式:
>>> x = 'the meaning\nof life'
>>> x.replace("\n", " ")
'the meaning of life'
>>>
使用原始字符串文字;Python字符串文字语法和正则表达式都解释反斜杠
re.sub(r"([,\w])\n(\w)", r"\1 \2", x)
另一种方法是将所有反斜杠加倍,这样它们就可以到达正则表达式引擎
请参阅Python正则表达式HOWTO的第二部分
演示:
在换行符上拆分可能更容易;使用,然后使用以下命令与空间重新连接:
但不可否认,这不会区分单词之间的换行和其他地方的额外换行。或使用原始字符串文字。您也可以跳过导入
re
并使用x.replace(“\n”,”)
。但这会更改所有行返回。我只想要夹在信或信中间的commas@geotheory:关于str.replace()
解决方案?似乎你忘了在你的问题中提到这一点:是的,我本可以更明确地说:)
>>> import re
>>> x = 'the meaning\nof life'
>>> re.sub(r"([,\w])\n(\w)", r"\1 \2", x)
'the meaning of life'
' '.join(ex.splitlines())