请教高手一个超难问题!!!!!!

wersdfsdfgdf 2012-03-15 10:36:55
用正则实现下面的效果:
判断一个字符串是否以"人数(5)" 开始(注:括号里的数字可以是不确定整数,数字是不能以0开头的整数),并且字符串只能包含一个这样的匹配。 如果匹配上了就把括号中的数字取出来。 请教如何实现
...全文
76 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wersdfsdfgdf 2012-03-15
  • 打赏
  • 举报
回复
搞定了,感谢大家,散分
wersdfsdfgdf 2012-03-15
  • 打赏
  • 举报
回复
"人数(2345)"字样只能在开头出现一次,后面如果还有类似字样,就视为不符合条件,不取数字,例如“人数(2345)"sdfsfsd人数(222)ss”

这一条没有符合
充电中 2012-03-15
  • 打赏
  • 举报
回复
^人数\\((^[1-9]\\d*)+\\)
这个样式不就可以了么?
昨日凡阳 2012-03-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bill0605030109 的回复:]

Java code

Pattern pattern = Pattern.compile("^人数\\((\\d)+\\)");
Matcher matcher = pattern.matcher("人数(2345)asdfasdf");
if(matcher.find()) {
System.out.println(ma……
[/Quote]

你直接这样写,中文编码是否会有问题?

最好在js客户端做。
wersdfsdfgdf 2012-03-15
  • 打赏
  • 举报
回复
这样有点问题,一个是字符串中"人数(2345)"字样如果出现多次,或者里面数字以零开头,就不取了,只取符合条件下的数字 ,"人数(2345)"字样只能在开头出现一次,后面如果还有类似字样,就视为不符合条件,不取数字
FOR_US 2012-03-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bill0605030109 的回复:]

Java code

Pattern pattern = Pattern.compile("^人数\\((\\d)+\\)");
Matcher matcher = pattern.matcher("人数(2345)asdfasdf");
if(matcher.find()) {
System.out.println(ma……
[/Quote]

+1
  • 打赏
  • 举报
回复

Pattern pattern = Pattern.compile("^人数\\((\\d)+\\)");
Matcher matcher = pattern.matcher("人数(2345)asdfasdf");
if(matcher.find()) {
System.out.println(matcher.group().replaceAll("(\\D)", ""));
}

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧