java正则提取$ 中的值_使用正则表达式在Java中提取值

回答(13)

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

在Java 1.4及更高版本中:

String input = "...";

Matcher matcher = Pattern.compile("[^0-9]+([0-9]+)[^0-9]+").matcher(input);

if (matcher.find()) {

String someNumberStr = matcher.group(1);

// if you need this to be an int:

int someNumberInt = Integer.parseInt(someNumberStr);

}

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

看看你可以使用StringTokenizer来做到这一点

String str = "as:"+123+"as:"+234+"as:"+345;

StringTokenizer st = new StringTokenizer(str,"as:");

while(st.hasMoreTokens())

{

String k = st.nextToken(); // you will get first numeric data i.e 123

int kk = Integer.parseInt(k);

System.out.println("k string token in integer " + kk);

String k1 = st.nextToken(); // you will get second numeric data i.e 234

int kk1 = Integer.parseInt(k1);

System.out.println("new string k1 token in integer :" + kk1);

String k2 = st.nextToken(); // you will get third numeric data i.e 345

int kk2 = Integer.parseInt(k2);

System.out.println("k2 string token is in integer : " + kk2);

}

由于我们将这些数值数据转换为三个不同的变量,我们可以在代码中的任何位置使用此数据(以供进一步使用)

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

除了Pattern之外,Java String类还有几个可以使用正则表达式的方法,在这种情况下代码将是:

"ab123abc".replaceFirst("\\D*(\\d*).*

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值