java写一个正则表达式,可以匹配尾号5连的手机号.规则: 第1位是1,第二位可以是数字3458其中之一,后面4位任
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java写一个正则表达式,可以匹配尾号5连的手机号.规则: 第1位是1,第二位可以是数字3458其中之一,后面4位任相关的知识,希望对你有一定的参考价值。
1[3458]\\d41 匹配 1
[3458] 匹配 3 4 5 8 任意一个
\\d4 匹配 4个0-9 参考技术A (?<!\d)1[3458][0-9]4([0-9])\14(?!\d)
以上为我写的正则表达式
import java.util.regex.*;
Pattern p = Pattern.compile("(?<!\\d)1[3458][0-9]4([0-9])\\14(?!\\d)");
Matcher m = p.matcher(要查找的文本字符串);
boolean found = m.find();
if( found )
String foundstring = m.group();
int beginPos = m.start();
int endPos = m.end();
上面的代码不是我写的
java 正则获取 第一个匹配
String text="s = (90) e s = (60) e";
Pattern p=Pattern.compile("s.*\\((.*?)\\).*e");
Matcher m=p.matcher(text);
while(m.find())
System.out.println(m.group(1));
现在有两个相同的内容我想保持每次都获取第一个内容该怎么写。
内容:s = (90) e s = (60) e
内容第一个: s = (90) e
内容第二个: s = (60) e
("s.*\\((.*?)\\).*e") 这个能获取什么啊就是获取()里边的内容啊。
每次能获取90就是我要达到的效果。
while(matcher.find())
result.add(matcher.group());
matcher.find()会匹配第一个结果,后续会从这里继续往后匹配本回答被提问者采纳 参考技术B String text="s = (90) e s = (60) e";
text=text.replaceAll(" ", "");
Pattern p=Pattern.compile("\\\\((.*?)\\\\)");
Matcher m=p.matcher(text);
List<String> list = new ArrayList<String>();
while(m.find())
list.add(m.group(1));
System.err.println(list.get(0)); 参考技术C 木有明白你啥意思
以上是关于java写一个正则表达式,可以匹配尾号5连的手机号.规则: 第1位是1,第二位可以是数字3458其中之一,后面4位任的主要内容,如果未能解决你的问题,请参考以下文章