当前位置:首页 » 编程语言 » java字符串正则匹配

java字符串正则匹配

发布时间: 2022-11-20 02:47:20

java如何用正则表达式完成字符串的匹配

String str="111.111.222.1"; //你要匹配的字符串
String regex = "\\d{1,3}.\\d{1,3}.\\d{1,3}.\\d{1,3}";//正则表达式
if (str.matches(regex)) {//字符串 满足条件

}

② java正则表达式是什么

java正则表达式是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。

在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。

很可能你使用过Windows/Dos下用于文件查找的通配符(wildcard),也就是*和?。如果你想查找某个目录下的所有的Word文档的话,你会搜索*.doc。在这里,*会被解释成任意的字符串。

和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求——当然,代价就是更复杂——比如你可以编写一个正则表达式,用来查找所有以0开头,后面跟着2-3个数字,然后是一个连字号“-”,最后是7或8位数字的字符串(像010-12345678或0376-7654321)。

正则表达式的基本操作:

正则表达式定义:符合一定规则的表达式。

作用:用于专门操作字符串。

特点:用于一些特定的符号来表示一些代码操作。这样就简化书写。所以学习正则表达式,就是在学习一些特殊符号的使用。

好处:可以简化对字符串的复杂操作。

弊端:符号定义越多,正则越长,阅读性越差。

③ JAVA正则表达式 匹配一段字符串

import java.util.regex.*;
public class Test1 {
public static void main(String[] args) {
Pattern p = Pattern.compile("[a-zA-Z]123456");
String a="A123456";
//String a="H545987"; //可以换成这个
Matcher m = p.matcher(a);//
System.out.println(m.matches());
}
}

根据是否正确返回true或false

④ JAVA正则表达式怎么匹配所有符合要求的子字符串

Matcher matches= 源字符串.matcher(正则);

while (matches.find()) {
String found= matches.group();
System.out.println(found);
}

⑤ java 怎么利用正则表达式从给定的字符串中取出匹配规则字符串

java正则提取需要用到Matcher类,下面给出案例示例供参考


需要提取车牌号中最后一个数字,比如说:苏A7865提取5,苏A876X提取6

importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
publicclassTest{
publicstaticvoidmain(String[]args){
Strings="A876X";
//把要匹配的字符串写成正则表达式,然后要提取的字符使用括号括起来
//在这里,我们要提取最后一个数字,正则规则就是“一个数字加上大于等于0个非数字再加上结束符”
Patternpattern=Pattern.compile("(\d)[^\d]*$");
Matchermatcher=pattern.matcher(s);
if(matcher.find())
System.out.println(matcher.group(1));
}
}


关于Matcher 中的几个方法说明:

Mathcer.start()

Matcher.end()

Matcher.group()


当使用matches(),lookingAt(),find()执行匹配操作后,就可以利用以上三个方法得到更详细的信息.
start()返回匹配到的子字符串在字符串中的索引位置.
end()返回匹配到的子字符串的最后一个字符在字符串中的索引位置.
group()返回匹配到的子字符串

示例代码如下,具体功能请参考注释

Patternp=Pattern.compile(“d+”);
Matcherm=p.matcher(“aaa2223bb”);
m.find();//匹配2223
m.start();//返回3
m.end();//返回7,返回的是2223后的索引号
m.group();//返回2223
Mathcerm2=p.matcher(“2223bb”);
m2.lookingAt();//匹配2223
m2.start();//返回0,由于lookingAt()只能匹配前面的字符串,所以当使用lookingAt()匹配时,start()方法总是返回0
m2.end();//返回4
m2.group();//返回2223
Matcherm3=p.matcher(“2223”);//如果Matcherm3=p.matcher(“2223bb”);那么下面的方法出错,因为不匹配返回false
m3.matches();//匹配整个字符串
m3.start();//返回0
m3.end();//返回3,原因相信大家也清楚了,因为matches()需要匹配所有字符串
m3.group();//返回2223


另外,Mathcer类中start(),end(),group()均有一个重载方法它们是start(int i),end(int i),group(int i)专用于分组操作,Mathcer类还有一个groupCount()用于返回有多少组.

示例如下:

Patternp=Pattern.compile(“([a-z]+)(d+)”);
Matcherm=p.matcher(“aaa2223bb”);
m.find();//匹配aaa2223
m.groupCount();//返回2,因为有2组
m.start(1);//返回0返回第一组匹配到的子字符串在字符串中的索引号
m.start(2);//返回3
m.end(1);//返回3返回第一组匹配到的子字符串的最后一个字符在字符串中的索引位置.
m.end(2);//返回7
m.group(1);//返回aaa,返回第一组匹配到的子字符串
m.group(2);//返回2223,返回第二组匹配到的子字符串


注意: 只有当匹配操作成功,才可以使用start(),end(),group()三个方法,否则会抛出java.lang.IllegalStateException,也就是当matches(),lookingAt(),find()其中任意一个方法返回true时,才可以使用。

⑥ java 正则表达式 怎么匹配 中文 和数字

java 正则匹配字符为纯数字方法:
定义正则表达式为:

String reg="^\\d+$"

获取要判断的字符串:

String str;//可以通过Scanner从控制台输入,也可以用字符串常量进行初始化

调用字符串的matches方法判断字符串为纯数字情况:

str.matches(reg);

如果是纯数字返回为true,否则返回为false;

⑦ java 正则匹配字符是否为纯数字

java 正则匹配字符为纯数字方法:

定义正则表达式为:

Stringreg="^\d+$"

获取要判断的字符串:

Stringstr;//可以通过Scanner从控制台输入,也可以用字符串常量进行初始化

调用字符串的matches方法判断字符串为纯数字情况:

str.matches(reg);

如果是纯数字返回为true,否则返回为false;

⑧ java通过正则匹配字符串只包含哪些字符

用java正则表达式检测字符串中含有某字符方法:<pre t="code" l="java">public class Test {

public static void main(String[] args) {
String str="Hello World"; //待判断的字符串
String reg=".*ll.*"; //判断字符串中是否含有ll
System.out.println(str.matches(reg));
}

}

⑨ java 正则表达式匹配包含字符串

这个问题不用正则表达式,用JavaString类的contains函数就可以解决了。

具体的Java程序代码如下:

publicclassCB{
publicstaticvoidcheck(Stringsource,Stringtarget){
booleanflag=false;
inti;
for(i=0;i<source.length();i++){
if(!target.contains(source.charAt(i)+"")){
break;
}
}
if(i==source.length())flag=true;
if(flag==true){
System.out.println(source+"和"+target+"匹配");
}else{
System.out.println(source+"和"+target+"不匹配");
}
}
publicstaticvoidmain(String[]args){
check("6482","600000");
check("6482","006400");
check("6482","020864");
}
}

运行结果:

6482和600000不匹配
6482和006400不匹配
6482和020864匹配

⑩ java正则表达式匹配数字后带点的

java 正则匹配字符为数字后带点的方法步骤:
第一步:定义正则表达式为:
String reg="[0-9.]"

第二步:获取要判断的字符串:
String str;//可以通过Scanner从控制台输入,也可以用字符串常量进行初始化

第三步:调用字符串的matches方法判断字符串为数字后面带点的情况:
str.matches(reg);

如果是符合条件,返回为true,否则返回为false;

热点内容
linux的路径怎么写 发布:2025-01-15 17:18:49 浏览:185
php解压程序 发布:2025-01-15 17:06:22 浏览:142
刷助力脚本 发布:2025-01-15 17:02:31 浏览:520
c盘里的用户文件夹可以删除 发布:2025-01-15 16:56:45 浏览:951
虚幻4编译到哪里 发布:2025-01-15 16:50:19 浏览:756
透明度渐变android 发布:2025-01-15 16:45:08 浏览:835
dos连接oracle数据库 发布:2025-01-15 16:41:39 浏览:906
网络配置比较低怎么做 发布:2025-01-15 16:35:38 浏览:362
android弹出键盘监听 发布:2025-01-15 16:35:11 浏览:208
uz画图编程 发布:2025-01-15 16:32:44 浏览:884