从字母

时间:2018-08-06 21:19:53

标签: python regex trim spaces

我有很多类似这样的字符串:“一个名称/另一个名称/其他名称”。

我要说的是:“一个名字/另一个名字/其他”。

基本上仅删除正斜杠前后的空格(而不是单词本身之间的空格)。

我对编程一无所知,但是我发现并发现可以使用Python和Regex来完成。尽管我发现的信息量让我有些不知所措。

6 个答案:

答案 0 :(得分:1)

您可以使用以下模式:

(?:(?<=\/) | (?=\/))
  • (?:非捕获组。
  • (?<=\/)落后于/
  • |
  • (?=\/)正向/前进。
  • )关闭非捕获组。

您可以在线体验here


Python代码段:

import re
str = 'a name / another name / something else'
print(re.sub(r'(?:(?<=\/) | (?=\/))','',str))

打印:

a name/another name/something else

答案 1 :(得分:1)

这是一个不用正则表达式的答案,我觉得它更容易理解

string = "a name / another name / something else"
edited = "/".join([a.strip() for a in string.split("/")])
print(edited)

输出:

a name/another name/something else

.join()通过给定的分隔符docs

连接序列的元素

.strip()删除开头和结尾的空格docs

.split()按字符docs

将字符串拆分为标记

答案 2 :(得分:1)

这里不需要正则表达式,因为您只需替换一串文字即可。

getsizeof

答案 3 :(得分:0)

此模式将与/周围的任意空格匹配,并将其删除。我认为regex相对容易理解

\s*([\/])\s*

具有一个与反斜杠匹配的捕获组(这就是中间部分)。 s*部分与空格匹配(至少一个,最多不限次数)。

然后可以将这些匹配的字符串替换为/,以摆脱所有空白。

答案 4 :(得分:0)

str1是您的字符串:

re.sub(" / ", "/" ,str1)

答案 5 :(得分:0)

使用以下代码删除/字符之前和之后的所有空格:

import re
str = 'a name /  another name / something else'
str = re.sub(r'(?:(?<=\/)\s*|\s*(?=\/))','', str)

检查this document以获得更多信息。