正则表达与希伯来语

时间:2015-01-11 13:24:02

标签: android regex hebrew

我的文字如下:

לשלום קוראים לי משהmy test is עלות 39.40, כל מיני data 1.1.2015 ויש גם data 123456 מידע

这个文本有希伯来语和英文字符,我需要删除除6位数字以外的所有字符(可能是5,这个数字:123456)。

你能帮我正则表达吗?

试过:

  String patternS = "[אבגדהוזחטיכךלמםנןסעפףצץקרשתa-fA-F0-9]{5,10}.*";
  Pattern pattern = Pattern.compile(patternString);

没有成功

4 个答案:

答案 0 :(得分:0)

要匹配除数字之外的所有内容:

\d+(?:[^\d]\d+)+|[\p{L}\p{M}\p{Z}\p{P}\p{S}\p{C}]+

String resultString = subjectString.replaceAll("\\d+(?:[^\\d]\\d+)+|[\\p{L}\\p{M}\\p{Z}\\p{P}\\p{S}\\p{C}]+", "");

答案 1 :(得分:0)

这将在你的字符串中为你提供每6个didgit组合。

(\d{6,6})

我们无法为您提供更详细的正则表达式,因为我们现在知道这些字符串的模式。 如果总是存在"数据"前缀你也可以使用它来使模式更准确:

data (\d{6,6})

答案 2 :(得分:0)

尝试这样的事情:

String patternS = "(\d{5,6})";
Pattern pattern = Pattern.compile(patternS);
Matcher m = pattern.matcher(yourText);
int number = Integer.parseInt(m.group(1));

其中yourText是您想要匹配的希伯来语/英语文本。

答案 3 :(得分:0)

这适用于这个具体的例子。

String s = " לשלום קוראים לי מש my test is עלות 39.40, כל מיני data 1.1.2015 ויש גם data 123456 מידע1234";
System.out.println(s.replaceAll(".*\\b(\\d{5,6})\\b.*", "$1"));