我想创建一个正则表达式,以允许特定字符串的字符之间的空格。
上下文是我们有一个不干净的数据库,其字符串有时包含他们不应该拥有的空间。我还不允许删除数据库中的空格(替换('',''))。
我希望有一个正则表达式能够匹配字符串,即使字符串是用空格剪切的。
例如: 奥巴马将匹配"奥巴马"," ob ama","奥巴马"," ob ama"," obam a",而不是" obamaa"," ocama"," "
有可能吗?如果有,怎么样?
感谢。
答案 0 :(得分:1)
只需在每个字符之间添加<space>*
。
\bo *b *a *m *a\b
或在上面使用[ \t]*
而不是空格。
答案 1 :(得分:0)
你也可以在没有正则表达的情况下做到这一点
>>> a = "ob ama"
>>> ''.join(a.split(' ')) == 'obama'
True
答案 2 :(得分:0)
这应该有效:
(\S? )*\S
如果前导空格有问题,应该修改。此外,这允许多个空格,但你没有真正说出任何相关的内容。如果除了常规空间之外还需要允许其他类型的空白字符,则需要进行一些修改。这应该处理其他空格字符:
(\S?\s)*\S