在Python中合并带连字符的单词

2 投票
3 回答
1592 浏览
提问于 2025-04-17 13:19

我正在尝试在Python中合并带有连字符的单词。例如,我有:

bla bla bla infor-
mation bla bla bla

我想得到 blabla information bla bla bla

我可以找到连字符,去掉换行,这些都很简单,但我就是无法把这两个部分合并在一起。我得到的结果最接近的是 bla bla bla infor mation bla bla,但显然我不能只在空格上进行匹配,因为那样会把其他所有的空格都去掉。

任何帮助都会非常感谢。

3 个回答

3

使用 str.split()str.strip()

In [4]: strs="""bla bla bla infor-
   ...: mation bla bla bla"""

In [6]: "".join(x.strip() for x in strs.split("-\n"))
Out[6]: 'bla bla bla information bla bla bla'
4

你可以把前后有空格的-替换成一个空字符串,也就是去掉它: -

>>> import re
>>> s = "bla bla bla infor- mation bla bla bla"
>>> re.sub("\s*-\s*", "", s)
'bla bla bla information bla bla bla'

如果hyphen的末尾有换行符: -

>>> s = """bla bla bla infor-
mation bla bla bla"""
>>> re.sub("\s*-\s*\n", "", s)
'bla bla bla information bla bla bla'
8

为什么要用正则表达式来处理这么简单的事情呢?

>>> s = """bla bla bla infor-
... mation bla bla bla"""
>>> s.replace('-\n','')
'bla bla bla information bla bla bla'

撰写回答