正则表达式分为希伯来字母

时间:2015-03-21 15:15:50

标签: java regex hebrew

我试图找出分裂希伯来词的正则表达式,以便我在该词中得到一个字母/数字/符号数组。

我不知道希伯来语,但这就是我现在所拥有的(每个单词都与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}]*

然而,如果有人知道希伯来语,并且可以说这是一种有用的正确方法。

例如:

输入:

בְּ/רֵאשִׁ֖ית
בָּרָ֣א
אֱלֹהִ֑ים
אֵ֥ת
הַ/שָּׁמַ֖יִם
וְ/אֵ֥ת
הָ/אָֽרֶץ׃

输出:

"בְּ/"
"רֵ"
"א"
"שִׁ֖"
"י"
"ת"
"בָּ"
"רָ֣"
"א"
"אֱ"
"לֹ"
"הִ֑"
"י"
"ם"
"אֵ֥"
"ת"
"הַ/"
"שָּׁ"
"מַ֖"
"יִ"
"ם"
"וְ/"
"אֵ֥"
"ת"
"הָ/"
"אָֽ"
"רֶ"
"ץ׃"

1 个答案:

答案 0 :(得分:1)

也许你可以使用这个模式:

String[] allWords = doc.split("[^א-ת']+");

尝试改变希伯来字母的顺序,先是 Alef,然后是 Tav