java写一个正则表达式,可以匹配尾号5连的手机号.规则: 第1位是1,第二位可以是数字3458其中之一,后面4位任

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java写一个正则表达式,可以匹配尾号5连的手机号.规则: 第1位是1,第二位可以是数字3458其中之一,后面4位任相关的知识,希望对你有一定的参考价值。

1[3458]\\d4
1 匹配 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就是我要达到的效果。

参考技术A Matcher matcher = p.matcher(test);
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位任的主要内容,如果未能解决你的问题,请参考以下文章

php正则 匹配 手机、座机号码

用js的正则表达式检测电话号码,要求,必须是1开头,只能是数字,并且是11位数字,这儿正则表达式怎么写

手机号正则表达式精简

java 正则表达前匹配

java正则表达式

JAVA正则表达式判断 只能包含汉字、英文、“_”和数字 ,正则该怎么写呢?