Regex 长生不老药标点替换正则表达式

Regex 长生不老药标点替换正则表达式,regex,elixir,Regex,Elixir,我正在尝试使用删除字符串中的所有标点符号 String.replace(sentence, ~r[\p{P}\p{S}], "") 然而,它并没有删除所有标点符号!作为示例: iex(1)> String.replace("foo!&^%$?", ~r[\p{P}\p{S}], "") "foo!?" 我应该使用什么?可能需要/../作为模式: 这个结果可以解释,因为在您的示例中,else[]将用作分隔符,它作为一个序列对应于\p{p}\p{S},并导致foo(请参阅) 将另外

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

String.replace(sentence, ~r[\p{P}\p{S}], "")
然而,它并没有删除所有标点符号!作为示例:

iex(1)> String.replace("foo!&^%$?", ~r[\p{P}\p{S}], "")
"foo!?"

我应该使用什么?

可能需要
/
..
/
作为模式:

这个结果可以解释,因为在您的示例中,else
[
]将用作分隔符,它作为一个序列对应于
\p{p}\p{S}
,并导致
foo(请参阅)


将另外添加一个
+
~r/[\p{p}\p{S}]+/

如果您仅使用英文字符串,则只需使用以下命令即可:


String.replace(“foo!&^%$?”、~r/[:punct:][]/,”)
我游戏迟到了,但你必须调整正则表达式并对其进行自定义,特别是如果你试图保留某些项目,如连字符(在某些语言方面被视为标点符号)

我的替换有点冗长,但我可以控制要替换的内容:

String.replace(str,~r/[!#$%&()*+,.:;?@^^ `{124;}-]/,“”)


这让我可以在删除
或其他字符时将连字符保留在单词中,如co-operation。

此正则表达式还将删除hypens,如
co-operation
@Jonny5您是否能够更新您的注册表项以不删除连字符?
String.replace("foo!&^%$?", ~r/[\p{P}\p{S}]/, "")