2015-01-11 190 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"));