当前位置:首页 » 编程语言 » javamatch

javamatch

发布时间: 2022-11-30 07:43:22

java matches()与equals()有什么区别

matches: 判断字符是否与指定的 正则表达式 相匹配
equals : 判断两个字符串是否相等
举例:
1. matches
String str = "123abc";
String regex = "^[0-9]+[a-c]+$";
System.out.println(str.matches(regex));

2. equals
String str1 = "ABC";
String str2 = "ABC";
System.out.println(str1.equals(str2));

一个是判断是否符合正则表达式规则,另一个是判断是否两个字符串相等

㈡ 如何用java实现javascript的match效果

Java 的正则表达式用法和 JavaScript 的类似。

但是正则表达式的写法略有不同。在 Java 中正则表达式源是当中普通字符串来对待的,不需要像 JavaScript 那样用“/.../”包裹,另外,特别要注意正则表达式转义字符是双斜杠(因为在 Java 中,斜杠已是字符串的转义字符,双斜杠才代表斜杠)。

至于使用的语法,常规情况下,需要用到 Pattern 类,下面是一个例子:

importjava.util.regex.Pattern;//导入regex包
importjava.util.regex.Matcher;
//publicclass...{
Patternp=Pattern.compile("Hello\w");//编译正则表达式
Matcherm=p.matcher("HelloWorld");//开始匹配字符串
while(m.find()){//只要匹配则循环
Stringresult=m.group();//返回匹配的子串
}
//}

但是有时候不用这么麻烦,String 类中有隐含的正则表达式匹配函数 matches() 和 split(),其中 split() 和 JavaScript 中的 match() 比较相似。下面是例子:

Strings="HelloAHelloBHelloC";
booleanbResult=s.matches("Hello[A-C]");//matches()仅返回逻辑判断结果
String[]strResults=s.split("Hello[A-C]");//split()可返回结果子串,放在数组当中

详细用法请参考 Java 语言手册。

http:// docs.oracle.com/javase/6/docs/api/java/lang/String.html
http:// docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html

㈢ java matches 正则表达式 匹配某个字符恰好出现n次

[2]代表字符串取值范围,{3}代表字符串的总长度 ,你换成"[2-3]{5}"就OK了

㈣ java中matchs()的用法

我就说,这个问题这么没人回答,原来是一个这么"泛"的问题,不好回答呀!简单跟你说一下吧,matchs()这个方法中需要传入一个参数,这个参数是一个字符串类型的。实际上,在执行的时候,JVM会把这个字符串参数理解成为正则表达式,然后实现正则匹配!正则匹配是一个大的议题,一点点篇幅说不清楚,你可以去想象一下你在使用系统搜索功能的时候,在搜索框中填写的东西,那个就是正则表达式。然后,还是给你一个示例把:
public class Test{
public static void main(String args[])
{
String str="abcdefg";
//检查"abcdefg"是否匹配"abcdefg"
System.out.println(str.matches("abcdefg"));
//检查"abcdefg"是否匹配"abc"
System.out.println(str.matches("abc"));
//检查"abcdefg"是否匹配 以abc开头 后接任意字符(可以为空)
System.out.println(str.matches("^abc.*"));
//检查"abcdefg"是否匹配 以abc开头,以字母结束(可以为空)
System.out.println(str.matches("^abc[a-z]*"));
//检查"abcdefg"是否匹配以任意字符开头,以abc作为结尾
System.out.println(str.matches(".*abc$"));
}
}
执行结果:
true
false
true
true
false

㈤ java matcher方法

看一下Pattern的matcher方法就知道了
/**
* Creates a matcher that will match the given input against this pattern.
* </p>
*
* @param input
* The character sequence to be matched
*
* @return A new matcher for this pattern
*/
public Matcher matcher(CharSequence input) {
if (!compiled) {
synchronized(this) {
if (!compiled)
compile();
}
}
Matcher m = new Matcher(this, input);
return m;
}

它返回的是一个新的Matcher对象, 再执行它的matches()方法.
遇到不懂的时候看看源代码就一目了然啦

㈥ java里.matches方法有什么用

java.lang包中的String类,java.util.regex包中的Pattern,Matcher类中都有matches()方法。
都与正则表达式有关。下面我分别举例:(字符串:"abc",正则表达式: "[a-z]{3}")

String类的方法:
boolean b = "abc".matches("[a-z]{3}"
System.out.println(b);

Pattern类中的方法:
boolean b = Pattern.matches("[a-z]{3}","abc");
System.out.println(b);

Matcher类中的方法:
Pattern p = Pattern.compile("[a-z]{3}");
Matcher m = p.matcher("acc");
boolean b =m.matches()
System.out.println(b)

㈦ Java类库中String类的match方法用法

纠正下,java中用到的是matchs,不是match,意思为比较两个值是否相等。举例:

String str = "1111111";

String str1 = "1111111";

System.out.println(str.matches(str1));//两个输出的值相等,所以是true

String format = "yyyy-MM-dd hh:mm:ss";

String time = "2010-07-13 03:30:50";

System.out.println(time.matches(format));//比较的是值不是类型,所有是false

输出结果:

㈧ 请问java高手,如何用String的matches()匹配只有(字母、数字、中文、半角@)的字符串啊感激不尽

packagetestDemo;

importjava.util.regex.Matcher;

importjava.util.regex.Pattern;publicclassDemo

{

publicstaticvoidmain(Stringargs[]){//按指定模式在字符串查找

Stringline="1a我@163com";Stringpattern="[a-zA-Z0-9u4E00-u9FA5@]+";

//创建Pattern对象

Patternr=Pattern.compile(pattern);//现在创建matcher对象

Matcherm=r.matcher(line);

if(m.matches()){

System.out.println("inputvlueisOK");

}else{

System.out.println("NOMATCH");

}

}

}

㈨ java正则表达式判断一个字符前是否有一个字符

java使用match和pattern来实现判断字符串是否不含有某个字符,实例如下:
/**
* 判断字符串是否数值
* @param str
* @return true:是数值 ;false:不是数值
* @author:WD_SUHUAFU
*/
private boolean isNumber(String str)
{
Pattern pattern = Pattern.compile("^[0-9]+(.[0-9]*)?$");
Matcher match=pattern.matcher(str);
return match.matches();
}

㈩ java中怎么匹配字符串

匹配方式(其中每个方式对应RegUtil.java中的一个方法)代码:
package test;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegUtil {
/**
* 方式一:基本正则表达式实现
* @param str
* @param reg
* @return
*/
public static boolean matchMatcher(String str,String reg){
Pattern pattern =Pattern.compile(reg);
Matcher matcher=pattern.matcher(str);
return matcher.matches();
}

/**
* 方式二:利用Pattern自带实现
* @param str
* @param reg
* @return
*/
public static boolean matchPattern(String str,String reg){
return Pattern.matches(reg, str);
}

/**
* 方式三:String自带实现
* @param str
* @param reg
* @return
*/
public static boolean matchStr(String str,String reg){
return str.matches(reg);
}

}
对应单元测试代码如下:
package test;

import org.junit.Assert;
import org.junit.Test;

public class TestReg {

@Test
public void testParttern(){
Assert.assertTrue(RegUtil.matchMatcher("123", "//d+"));
Assert.assertTrue(RegUtil.matchPattern("123", "//d+"));
Assert.assertTrue(RegUtil.matchStr("123", "//d+"));
}
}

热点内容
linux下ntp服务器搭建 发布:2024-09-08 08:26:46 浏览:742
db2新建数据库 发布:2024-09-08 08:10:19 浏览:171
频率计源码 发布:2024-09-08 07:40:26 浏览:778
奥迪a6哪个配置带后排加热 发布:2024-09-08 07:06:32 浏览:101
linux修改apache端口 发布:2024-09-08 07:05:49 浏览:209
有多少个不同的密码子 发布:2024-09-08 07:00:46 浏览:566
linux搭建mysql服务器配置 发布:2024-09-08 06:50:02 浏览:995
加上www不能访问 发布:2024-09-08 06:39:52 浏览:811
银行支付密码器怎么用 发布:2024-09-08 06:39:52 浏览:513
苹果手机清理浏览器缓存怎么清理缓存 发布:2024-09-08 06:31:32 浏览:554