java - 删除标点符号、非阿拉伯语单词和数字(点和逗号除外)

标签 java regex

我正在尝试编写一个执行以下操作的正则表达式: 删除标点符号、非阿拉伯单词和数字(点和逗号除外)。

我想要两个独立的正则表达式在java中执行以下操作:

  1. 删除标点符号和数字(点和逗号除外)。
  2. 删除除点和逗号之外的非阿拉伯语单词。

请注意,我知道以下内容,但我无法从正则表达式中排除点和逗号以使其不匹配:

"[\\p{P}\\p{Digit}]" --> 用于删除数字和标点符号正则表达式

"[^\\p{InArabic}]+" --> 用于删除非阿拉伯字母正则表达式

示例:

年龄(年龄):年龄。

执行两个正则表达式后,我们应该得到以下结果: ?????????????????????????????????????????????????????????????????????????????????????????????????????? 嗯嗯。

任何帮助将不胜感激,因为我尝试了很多可能性,但所有这些都不起作用。

最佳答案

您可以将否定字符类与集合交集运算符 && 结合使用:

"[^.,&&[\\p{P}\\p{Digit}]]+"

匹配除逗号和句点之外的数字和标点符号。

对于第二个问题,只需将逗号/句点添加到已经否定的 charclass 中即可:

"[^\\p{InArabic}.,]+"

要将两者结合起来,您可以使用

"[^.,&&[\\P{InArabic}\\p{P}\\p{Digit}]]+"

关于java - 删除标点符号、非阿拉伯语单词和数字(点和逗号除外),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22898822/

相关文章:

Java 应用程序(沙箱损坏)与 Web 应用程序

java - Jframe 执行时大小不正确,有什么原因吗?

java - 非泛型类可以扩展吗?来自通用类或接口(interface)?

javascript - 正则表达式匹配左括号 [ 后的所有字符

javascript - 为什么这个正则表达式在 javascript 中评估为 false?

c# - 将光标或插入点移动到特定页面?

java - 带 gui 的多线程 JavaChat

php - Preg_match 使用数组?

python - 重复正则表达式的一部分?

java - 正则表达式:为什么 ^.*(\ba\w*\b)?.*$ 没有捕获任何内容?