我正在尝试编写一些代码,将带有希伯来字母的文件更改为有效的英文名称,但是我在解决如何检测这些文件时遇到了问题,我为listfiles函数构建了一个过滤器。
我也在网上搜索过,我找不到答案,但是这个:
How to tell if a string contains characters in Hebrew using PHP?
但它不是java,它的PHP。 任何想法?
答案 0 :(得分:2)
Pattern p = Pattern.compile("\\p{InHebrew}");
Matcher m = p.matcher(input);
答案 1 :(得分:2)
根据this页面,unicode希伯来文字有一个正则表达式类别。如果字符串包含希伯来文字,则此正则表达式:\\p{Hebrew}
应该为true。
答案 2 :(得分:2)
在我的情况下,选择的答案不适用于混合英语和希伯来语字符串。
String fileName = "ףךלחףךלחץ.msg";
Pattern p = Pattern.compile("\\p{InHebrew}", Pattern.UNICODE_CASE);
System.out.println(p.matcher(fileName).matches()); //false
输出:false。
要检查字符串是否包含下一个使用的代码的希伯来字母:
String fileName = "ףךלחףךלחץ.msg";
Pattern p = Pattern.compile("\\p{InHebrew}", Pattern.UNICODE_CASE);
Matcher m = null;
boolean hebrewDetected = false;
for (int i = 0; i < fileName.length() && !hebrewDetected; i++){
String letter = fileName.charAt(i) + "";
m = p.matcher(letter);
hebrewDetected = m.matches();
if (hebrewDetected){
break;
}
}
System.out.println("hebrewDetected=" + hebrewDetected ); //true
输出:true。
答案 3 :(得分:2)
要测试String str包含希伯来字母,请使用:
str.matches(“。* [א-ת] +。*”)
如果str包含希伯来字母,则返回true。