2015-01-11 138 views
2

正则表达式我有文字,如:用希伯来语

לשלום קוראים לי משה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); 

没有成功

回答

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}]+", ""); 
0

这将使你在每串6 didgit组合。

(\d{6,6})

我们不能给你一个更的相关详细的正则表达式,因为我们现在知道这些字符串的模式。 如果总有“数据”前缀,你也可以用它来使图案更准确:

data (\d{6,6})

0

尝试是这样的:

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

其中yourText是希伯来文/英文文本,你想匹配。

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"));