你是想要把所有的数字找出来?比如你的字符串是:"1223801,122380,14瀚华01,111"
你要匹配的结果是:
共找到 5 处匹配:
1223801
122380
14
01
111
是不是这样呢?是的话你用正则:([\d]+) 就可以了。
上面的有几组,我想匹配所有的 "1111,2222,3333,44444,55555"
在引号内 多个数字 加 引号的组合 有多个, 就是说 "([\d]+,)+" 这个意思,
当然 我写的这个不对,匹配不出来
我知道用别的方式也可以匹配出来,我只是 想知道 这种 写法,就是 多个外面 再有多个
比如
"1111,2222,3333,44444,55555"------------------"1111,2222,3333,44444,55555"------------------"1111,2222,3333,44444,55555"------------------
@Inszt: 就像你说的 只有连续的串 "1111,2222,3333,44444,55555," 都能匹配的 才能用 "([\d]+,)+" 找出来,要是你中间又多了其它字符,这样就匹配不到了,所以这样是不行的。因为正则匹配是匹配连续的串,当然分组也匹配出来的也是一串连续的。
@啊~小明: 我主要想问的不是 匹配我的例子中的东西
我主要想问 各种单个正则 组合成一个 ,这样一个组合 有多个的形式 可不可以
说白了 括号外面套括号 能套吗 能套多少个
ru: (([\d]+[\w]+)+[a-z])+
你的[]可以转义掉
不是,我的意思是说
有 1到多个数字加上 逗号 这样的整个作为 一个 组合 有1到多个
多个数字 +,:[\d]+, 整个 的有多个
应该怎么 写这个正则?
Pattern p = Pattern.compile("(.*,)+");
System.out.println(p.matcher("1111,").matches());
true
你要这个?
类似,不过你这个匹配不出来
@Inszt: 不太了解你的需求,你上面比如里面的有汉字,结果你要的是\d数字?
@之奇一昂:
比如
"1111,2222,3333,44444,55555"------------------"1111,2222,3333,44444,55555"------------------"1111,2222,3333,44444,55555"------------------
上面的有几组,我想匹配所有的 "1111,2222,3333,44444,55555"
在引号内 多个数字 加 引号的组合 有多个, 就是说 "([\d]+,)+" 这个意思,
当然 我写的这个不对,匹配不出来
我知道用别的方式也可以匹配出来,我只是 想知道 这种 写法,就是 多个外面 再有多个
@Inszt:
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { /** * @param args */ public static void main(String[] args) { Pattern p = Pattern.compile("\\d+(,\\d+)*"); Matcher m = p.matcher("\"1111,2222,3333,44444,55555\"------------------\"1111,2222,3333,44444,55555\"------------------\"1111,2222,3333,44444,55555\"------------------"); while(m.find()){ System.out.println(m.group()); } /** * output: * 1111,2222,3333,44444,55555 * 1111,2222,3333,44444,55555 * 1111,2222,3333,44444,55555 */ } }
这样的?