使用简单的搜索/替换正则表达式在点和字符之间插入空格

Зах*_*Joe 8 regex replace

我希望通过在每个句点和字母之间插入一个空格来分隔句子,而不是在点和括号或点和逗号之间插入空格.

考虑一下:

This is a text.With some dots.Between words.(how lovely).
Run Code Online (Sandbox Code Playgroud)

这可能在Perl或PHP中有一些解决方案,但我感兴趣的是它可以在支持基于正则表达式的搜索/替换的文本编辑器中完成吗?问题是它会匹配点和字符,替换将完全消除两者.换句话说,有没有办法在这两个字符之间匹配"无"?

JDB*_*JDB 12

您可以在替换字符串中使用反向引用.通常它看起来像:

搜索正则表达式:

(\.)(\w)
Run Code Online (Sandbox Code Playgroud)

替换模式(注意空间):

$1 $2
Run Code Online (Sandbox Code Playgroud)

后引用是相应组的替身.

或者,您可以使用lookarounds:

(?<=\.)(?=\w)
Run Code Online (Sandbox Code Playgroud)

这不会"捕获"文本,它只会匹配句点和字母/数字之间的位置(零长度字符串).替换它本质上会插入一些文本.

但实际上,这取决于文本编辑器的功能.很少有文本编辑器内置"完整"正则表达式引擎.我使用TextPad,它有自己的正则表达式,很大程度上不支持lookarounds(迫使我使用第一种方法).