Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Scala/Java中过滤中文标点符号?_Java_Regex_Scala - Fatal编程技术网

如何在Scala/Java中过滤中文标点符号?

如何在Scala/Java中过滤中文标点符号?,java,regex,scala,Java,Regex,Scala,我正试图在Scala/Spark中创建一个语言无关的文本解析器。我使用正则表达式从大量文本中删除标点符号 list_of_strings.map(_.replaceAll("""[\p{Punct}]""")) 然而,我在中文文本中发现了一些没有删除的标点符号。到目前为止,我已经为这些字符在我的正则表达式中添加了[“”.,”]。请注意,其中许多类似于拉丁标点符号,但并不完全相同 Java正则表达式中是否内置了一个“cannonical”函数,允许我去除其他语言中的标点符号?除了中文,我关心的是

我正试图在Scala/Spark中创建一个语言无关的文本解析器。我使用正则表达式从大量文本中删除标点符号

list_of_strings.map(_.replaceAll("""[\p{Punct}]"""))
然而,我在中文文本中发现了一些没有删除的标点符号。到目前为止,我已经为这些字符在我的正则表达式中添加了
[“”.,”]
。请注意,其中许多类似于拉丁标点符号,但并不完全相同

Java正则表达式中是否内置了一个“cannonical”函数,允许我去除其他语言中的标点符号?除了中文,我关心的是阿拉伯语


另外,我想确保一种语言中的标点符号在另一种语言中不是一个关键的语言组件。我既不熟悉中文也不熟悉阿拉伯语,所以我在找母语人士预先制作的东西

不需要将所有这些Unicode标点字符添加到字符类中。使用
模式.Unicode\U CHARACTER\U类
或等效的
(?U)
嵌入标志选项使
\p{Punct}
Unicode可识别:

.replaceAll("""(?U)\p{Punct}+""", "")
               ^^^^ 

+
之后的
\p{Punct}
删除连续标点字符是块,而不是逐个删除