我有一个webview,它会从一个url加载一个字符串,我不确定这是不是正确的方法,但我想做的是检查字符串是否是波斯语所以我改变了我的webview文本与rtl对齐,否则如果是英文,则将其更改为ltr。是否可以确定字符串是波斯语还是英语?或者是否有其他更好的方法来处理这件事?
提前致谢。
答案 0 :(得分:9)
尝试以下正则表达式,检查阿拉伯语,波斯语和希伯来语字符范围。
public static final Pattern RTL_CHARACTERS =
Pattern.compile("[\u0600-\u06FF\u0750-\u077F\u0590-\u05FF\uFE70-\uFEFF]");
Matcher matcher = RTL_CHARACTERS.matcher("براي تست");
if(matcher.find()){
return true; // it's RTL
}
答案 1 :(得分:0)
以下是解释Language recognition in Java
的方法你能做的只是检查字符串是否是英文字符串,如果不是,则应该是波斯语。
TextCat:http://textcat.sourceforge.net/
答案 2 :(得分:0)
在java中有语言检测库来检测语言。我认为它可能会对你有所帮助。试试吧。
您需要导入以下库文件才能使用此文件。
import com.cybozu.labs.langdetect.Detector;
import com.cybozu.labs.langdetect.DetectorFactory;
import com.cybozu.labs.langdetect.Language;
了解更多参考资料click here
答案 3 :(得分:0)
感谢接受的答案:
对于具有特定长度的英语字符,数字,空格和波斯语,阿拉伯语,希伯来语字符,您可以使用以下正则表达式模式:
class Article(object):
"""repersent an article"""
def __init__(self,title = "",year = 0,author = "",page = 0,price = 0):
"""everything that might be conclude in an article"""
self._title = title
self._year = year
self._author = author
self._page = page
self._price = price
def getTitle(self):
"""Returns the article's title"""
return self._title
def getYear(self):
"""Returns the article's publish year"""
return self._year
def getAuthor(self):
"""Returns the article's author"""
return self._author
def getPage(self):
"""Returns the article's page"""
return self._page
def __str__(self):
return str(self._title) + str(self._year) + str(self._author) + str(self._page) + str(self._price)
b = Article("pyomo",2016,"Marcel",354,40.99)
print(b)
javascript示例:
//MAX_LENGTH = maximum allowable length of string
var pattern = /^[a-zA-Z0-9-\u0600-\u06FF\u0750-\u077F\u0590-\u05FF\uFE70-\uFEFF ]{2,MAX_LENGTH}$/;
答案 4 :(得分:0)
尝试 Persian-tools 一个很棒的 JavaScript 库以及许多其他有用的功能。
import { isPersian, toPersianChars } from "persian-tools2";
isPersian("این یک متن فارسی است؟") // true
isPersian("Lorem Ipsum Test") // false