正则表达式-仅当字符前后有空格时才对字符进行分割

时间:2019-02-06 16:20:34

标签: python regex

我只想在该字符前后有空格的情况下才拆分字符串。在我的情况下,字符是破折号,即'-'

示例

Opzione - AAAA-11

应分为

Opzione   AAAA-11

而不是

Opzione AAAA 11

语言是python。

谢谢

3 个答案:

答案 0 :(得分:1)

您可以使用正则表达式来做到这一点,但是使用split()join()来使用非正则表达式怎么办

str = 'Opzione - AAAA-11';
df = ' '.join(str.split(' - '))
print(df)

答案 1 :(得分:1)

您可以使用环视

(?<=\s)-(?=\s)
  • (?<=\s)->向后看。检查前面的空间的条件。
  • -->匹配-
  • (?=\s)->正向超前匹配以下空格

旁注-\s将与\r\t\n匹配,如果您只想考虑空间,则可以拥有像这样

(?<= )-(?= )

答案 2 :(得分:0)

str="Opzione - AAAA-11"
str=re.sub('(\s([\S])\s[\S]?)','',str)

(\s([\S])\s[\S]?)表示两个空格之间除空格以外的所有内容,然后等于或不包括空格的任何其他内容,这样您就可以像g h h g一样进行匹配。

因此,两个h都在两个空格之间,但是当您仅与\s([\S])\s匹配时,另一个h不会匹配,但(\s([\S])\s[\S]?)都将匹配。