根据这个网站,正则表达式
然而,当我尝试使用
\W+([.:,.!?;])(.)
与替换组$1 $2
完美地实现了我的需求——将连续的空格和标点符号缩减到最后一个标点符号,然后在该位置插入一个空格。对于我的目的来说,这是完美的。然而,当我尝试使用
(regexp-replace* #rx"\\W+([.:,.!?;])(.)" str "\\1 \\2")
时,我只得到未修改的str
。> (define str "ihmb e. ?. ! hrg; ; ")
> (regexp-replace* #rx"\\W+([.:,.!?;])(.)" str "\\1 \\2")
- : String
"ihmb e. ?. ! hrg; ;"
但我期望 ihmb e! hrg; "
这段代码是使用Typed Racket编写的,我刚刚更新到了Racket 6.0版本。
\\W+
在那里;尝试使用"(\\W)+([.:,.!?;])(.)" str "\\2 \\3"
。 - l'L'l