regex - Elixir 标点符号替换正则表达式

标签 regex elixir

我正在尝试使用从字符串中删除所有标点符号

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/

相关文章:

ruby - 如何在Elixir中使用AES CBC 128进行加密和解密

postgresql - Elixir -Postgres : invalid byte sequence for encoding\"UTF8\

Javascript:查找带有大括号的文本

postgresql - 使用 Ecto 在 postgres 中生成_series 并将空值检索为 “0”

syntax - Elixir 宏允许的语法是什么?

java - Pattern matcher.group() 越界异常

elixir - 我可以在 Elixir 的同一个库中拥有函数的别名吗?

正则表达式匹配不以某些内容结尾的单词

javascript - 在 HTML 中使用 php 和正则表达式匹配定义类名

java - 为 URI 路径创建正则表达式