2015-01-11 2 views
2

У меня есть текст, как:Регулярное выражение с древнееврейского

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

Этот текст есть на иврите и английских символов, мне нужно устранить все, кроме 6 значное число (может быть 5, это Num: 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")); 
Смежные вопросы