我希望通过在每个句点和字母之间插入一个空格来分隔句子,而不是在点和括号或点和逗号之间插入空格.
考虑一下:
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(迫使我使用第一种方法).