我正在尝试编写一个执行以下操作的正则表达式:删除标点符号,非阿拉伯语单词和数字,除了点和逗号.
我想有两个单独的正则表达式在java中执行以下操作:
请注意,我知道以下内容,但我无法从regx中排除不匹配的点和逗号:
"[\\p{P}\\p{Digit}]" - >用于删除数字和标点正则表达式
"[^\\p{InArabic}]+" - >用于删除非阿拉伯字母正则表达式
例:
العمر(age):هوالشيءالوحيدالذيكلمازادنقص.
执行这两个正则表达式后,我们应该得到以下内容:العمرهوالشيءالوحيدالذيكلمازادنقص.
任何帮助将不胜感激,因为我尝试了很多可能性,但所有这些都没有用.
您可以使用与集合交集运算符组合的否定字符类&&:
"[^.,&&[\\p{P}\\p{Digit}]]+"
Run Code Online (Sandbox Code Playgroud)
匹配除逗号和句点之外的数字和标点符号.
对于第二个问题,只需将逗号/句点添加到已经否定的charclass中:
"[^\\p{InArabic}.,]+"
Run Code Online (Sandbox Code Playgroud)
要将两者结合起来,您可以使用
"[^.,&&[\\P{InArabic}\\p{P}\\p{Digit}]]+"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1219 次 |
| 最近记录: |