我试图找出分裂希伯来词的正则表达式,以便我在该词中得到一个字母/数字/符号数组。
我不知道希伯来语,但这就是我现在所拥有的(每个单词都与java.util.regex.Pattern.find
一起使用):
(?:(?:\p{L}+|\p{N}+)[^\p{L}\p{N}]*|[^\p{L}\p{N}]+)
正如我使用圣经创世记(Genesis.xml
来自http://www.tanach.us/Pages/Technical.html#Offline)的文本。
更新
我已将正则表达式更改为更简单,似乎工作正常。
\p{L}[^\p{L}]*
然而,如果有人知道希伯来语,并且可以说这是一种有用的正确方法。
例如:
输入:
בְּ/רֵאשִׁ֖ית
בָּרָ֣א
אֱלֹהִ֑ים
אֵ֥ת
הַ/שָּׁמַ֖יִם
וְ/אֵ֥ת
הָ/אָֽרֶץ׃
输出:
"בְּ/"
"רֵ"
"א"
"שִׁ֖"
"י"
"ת"
"בָּ"
"רָ֣"
"א"
"אֱ"
"לֹ"
"הִ֑"
"י"
"ם"
"אֵ֥"
"ת"
"הַ/"
"שָּׁ"
"מַ֖"
"יִ"
"ם"
"וְ/"
"אֵ֥"
"ת"
"הָ/"
"אָֽ"
"רֶ"
"ץ׃"
答案 0 :(得分:1)
也许你可以使用这个模式:
String[] allWords = doc.split("[^א-ת']+");
尝试改变希伯来字母的顺序,先是 Alef,然后是 Tav