Android 正则表达式获取正数
我有一个字符串,其中包含一个介于两者之间的数字,我想从该字符串中获取所有数字,因为我有这个正则表达式(\d+),但它不起作用 我还想包括那些在红场中提到的,我需要在正则表达式中做哪些更改 编辑:相关代码Android 正则表达式获取正数,android,regex,Android,Regex,我有一个字符串,其中包含一个介于两者之间的数字,我想从该字符串中获取所有数字,因为我有这个正则表达式(\d+),但它不起作用 我还想包括那些在红场中提到的,我需要在正则表达式中做哪些更改 编辑:相关代码 String regex = "( \\d+ )"; Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE); Matcher m = p.matcher(textView.getText());
String regex = "( \\d+ )";
Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(textView.getText());
while (m.find()) {
String number = m.group().replace(" ", "");
WAAFILogger.d("Number-regex", ":"+number+":");
int startIndex = messageText.indexOf(number);
int endIndex = startIndex + number.length() - 1;
builder.setSpan(message.getSpannableListenerForNumber(number),
startIndex,
endIndex + 1,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setMovementMethod(LinkMovementMethod.getInstance());
}
您可以使用以下两种方法之一:
\+?\b\d+(?!\S)
\+?(?<!\d|\d\.)\d+(?!\.?\d)
\+?\b\d+(?!\S)
\+?(?
见和。详情:
\+?
-可选的+
符号
\b
-单词边界
(?-如果当前位置左侧有一个数字或数字+
,则匹配失败的反向查找
\d+
-1+位
(?!\S)
-如果当前位置右侧没有非空白字符,则会导致匹配失败的负前瞻
(?!\.?\d)
-如果当前位置右侧有一个可选的
和一个数字,则会导致匹配失败的负前瞻
您想说您想避免匹配日期吗?您正在替换、提取、删除匹配项吗?请提供您的正则表达式相关代码以查看您的标题。提取。同时添加了代码,我建议使用String regex=“\\b\\d{1,2}\\s+\\w+\\s+\\d{2}(?\\d{2})\\b|(?@WiktorStribiżew它没有选择任何东西。在regex101上尝试过regex101。你需要绿色的。一件小事是,如果一个数字以+开头,不管它在左边或右边是否有空格,总是选择它。但它也选择没有加号的数字。请检查。@user2934930正确,你得到的是+923155104292
和de>92928392992
-你期望什么?试试\++\d++\b(?,谢谢,这更符合我的要求。