我正在尝试使用从字符串中删除所有标点符号
String.replace(sentence, ~r[\p{P}\p{S}], "")
但是,它并没有删除所有标点符号!作为说明性示例:
iex(1)> String.replace("foo!&^%$?", ~r[\p{P}\p{S}], "")
"foo!?"
我应该使用什么?
最佳答案
可能需要/
... /
作为图案 delimiters :
String.replace("foo!&^%$?", ~r/[\p{P}\p{S}]/, "")
结果可以解释,因为否则
[
]
将用作样本中的分隔符,对应于 \p{P}\p{S}
作为一个序列并产生 foo!?
(见 regex101 example)会另外添加一个
+
quantifier :~r/[\p{P}\p{S}]+/
关于regex - Elixir 标点符号替换正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25818874/