然而,这似乎是一项琐碎的任务,我找不到使用python进行此操作的解决方案。
给出以下字符串:
"Lorem/ipsum/dolor/sit amet consetetur"
我想输出
"Lorem/ipsum/dolor/sit ametconsetetur"
因此,删除amet
和consetetur
之间的单个空格。
使用.replace(" ","")
替换所有空格,给我:
"Lorem/ipsum/dolor/sitametconsetetur"
这不是我想要的。我该怎么解决?
答案 0 :(得分:3)
使用正则表达式和单词边界:
>>> s="Lorem/ipsum/dolor/sit amet consetetur"
>>> import re
>>> re.sub(r"\b \b","",s)
'Lorem/ipsum/dolor/sit ametconsetetur'
>>>
此技术还可以处理更常见的情况:
>>> s="Lorem/ipsum/dolor/sit amet consetetur adipisci velit"
>>> re.sub(r"\b \b","",s)
'Lorem/ipsum/dolor/sit ametconsetetur adipiscivelit'
对于开始和结束空间,您必须稍加努力,但是仍然可以做到:
>>> s=" Lorem/ipsum/dolor/sit amet consetetur adipisci velit "
>>> re.sub(r"(^|\b) (\b|$)","",s)
'Lorem/ipsum/dolor/sit ametconsetetur adipiscivelit'
只是为了好玩,最后一个变种:使用re.split
并使用多个空格分隔,使用组保留拆分的char,然后再次加入字符串,仅当字符串中包含一些非空格时才删除空格它:
"".join([x if x.isspace() else x.replace(" ","") for x in re.split("( {2,})",s)])
(我想这是由于创建列表和加入而较慢)
答案 1 :(得分:1)
s[::-1].replace(' ', '', 1)[::-1]
答案 2 :(得分:0)
VARCHAR(100)