【发布时间】:2018-05-12 01:22:57
【问题描述】:
所以,我正在使用正则表达式将句子转换为猪拉丁语,并决定扩展作业以允许标点符号。
我正在寻找一个正则表达式,它允许我用空字符串替换标点符号并找到 myString.replaceAll("\\p{P}", ""); 并且很好奇 \p 和 {P} 在这里实际做了什么。其他类似的问题使用"\\p{Z}" 替换空格,这让我认为 \p 正在搜索括号内的任何内容。
无论如何,对文档的任何澄清或说明将不胜感激。
【问题讨论】:
-
javadoc 对此进行了解释:docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html
-
不知道我是怎么错过的。谢谢
-
如果我搜索 Javadocs,我找不到
\p{P},只有\p{Punctuation}和\p{Print}。同样,我搜索了应该回答这个问题的引用答案,也没有找到对\p{P}的引用 -
链接的问题 ("What does this regex mean?") 没有特别提到标点符号 Unicode 类别,但确实指出
\p用于 Unicode 类别,它解决了\p的含义(即在这个问题中问)。是否重复部分取决于此问题是否主要要求对\p进行解释,或者“P”类别是什么(在这种情况下,此问题实际上是在问 2 个问题,其中一个是重复的) .