我发现了一些对正则表达式过滤掉非英语的引用,但它们都不是在 Java 中的,除了它们都指的是与我试图解决的问题有些不同的问题:
true
在字符串包含任何非英语字符时返回。“英文文本”不仅指实际的字母和数字,还指标点符号。
到目前为止,我能够为目标 #1 带来的东西非常简单:
String.replaceAll("\\W", " ")
Run Code Online (Sandbox Code Playgroud)
事实上,如此简单以至于我怀疑我遗漏了什么......你在上面发现任何警告吗?
至于目标#2,我可以简单trim()的字符串后上面replaceAll(),然后检查它是否是空的。但是......有没有更有效的方法来做到这一点?
事实上,如此简单以至于我怀疑我遗漏了什么......你在上面发现任何警告吗?
\W等价于[^\w],\w等价于[a-zA-Z_0-9]。Using\W将替换所有不是字母、数字或下划线的东西——比如制表符和换行符。这是否是一个问题真的取决于你。
“英文文本”不仅指实际的字母和数字,还指标点符号。
在这种情况下,您可能希望使用省略标点符号的字符类;就像是
[^\w.,;:'"]
Run Code Online (Sandbox Code Playgroud)
如果字符串包含任何非英语字符,则创建一个返回 true 的方法。
Pattern p = Pattern.compile("\\W");
boolean containsSpecialChars(String string)
{
Matcher m = p.matcher(string);
return m.find();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13449 次 |
| 最近记录: |