Python 正则表达式-仅当字符前后有空格时才拆分字符
我只想分割一个字符串,前提是该字符前后都有空格。在我的例子中,字符是破折号,即“-” 范例Python 正则表达式-仅当字符前后有空格时才拆分字符,python,regex,Python,Regex,我只想分割一个字符串,前提是该字符前后都有空格。在我的例子中,字符是破折号,即“-” 范例 Opzione - AAAA-11 应该分成两部分 Opzione AAAA-11 而不是在 Opzione AAAA 11 语言是python 谢谢你可以用正则表达式来做,但是用非正则表达式的方式,使用split()和join() 你可以用lookaround (?<=\s)-(?=\s) (?匹配-) (?=\s)->正向前瞻匹配以下空格 >边> ->代码> 将匹配 \r>代
Opzione - AAAA-11
应该分成两部分
Opzione AAAA-11
而不是在
Opzione AAAA 11
语言是python
谢谢你可以用正则表达式来做,但是用非正则表达式的方式,使用
split()
和join()
你可以用lookaround
(?<=\s)-(?=\s)
(?匹配-
)
(?=\s)
->正向前瞻匹配以下空格
<强> >边> <强> ->代码> 将匹配<代码> \r>代码>、<代码> \t>代码>和<代码> \n>代码>,如果您只想考虑空间,您可以有这样的
(?
这个(\s([\s])\s[\s]?)
表示两个空格之间除了空格以外的任何东西,然后是除空格以外的任何东西,这样您就可以像g
一样匹配
因此,两个h
都位于两个空格之间,但是当您仅与\s([\s])\s
匹配时,另一个h
将不会匹配,而是通过(\s([\s])\s[\s]?)
两者都将匹配。(?谢谢,请发表评论作为答案,以便我可以接受。我认为破折号只是一个例子,它可能是到之间的任何字符spaces@Gsk同意,先生,那么regex是个不错的选择,但是OP说在我的情况下,字符是破折号,即“-”我不一定同意regex是最好的选择,因为在这种情况下,字符是regex meta字符,那么它可能会成为一个全新的难题,如果用户不了解正则表达式,情况更是如此。
(?<=\s)-(?=\s)
str="Opzione - AAAA-11"
str=re.sub('(\s([\S])\s[\S]?)','',str)