Android 希伯来语正则表达式
我有如下文字:Android 希伯来语正则表达式,android,regex,hebrew,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 =
לשלום קוראים לי משה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);
无法成功匹配除数字以外的所有内容,请使用:
\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}]+", "");
这将为您提供字符串中每6个didgit的组合
(\d{6,6})
我们不能给你一个更详细的正则表达式,因为我们现在知道了这些字符串的模式。
如果始终存在“数据”前缀,您也可以使用此前缀使模式更准确:
数据(\d{6,6})
尝试以下方法:
String patternS = "(\d{5,6})";
Pattern pattern = Pattern.compile(patternS);
Matcher m = pattern.matcher(yourText);
int number = Integer.parseInt(m.group(1));
其中,
yourText
是您要匹配的希伯来文/英文文本。这适用于此特定示例
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"));