Java中怎么简单的使用正则表达式

Python018

Java中怎么简单的使用正则表达式,第1张

一个正则表达式就是由普通字符(例如大小写字母)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

在最简单的情况下,一个正则表达式看上去就是一个普通的查找串。例如,正则表达式"java"中没有包含任何元字符,它可以匹配"java"和"javascript"等字符串,但是不能匹配"Java"。

正则表达式不仅能进行字符串的匹配,还能进行字符串的提取、替换。

示例代码:

String regEx = ".+/(.+)$"

String str = "D:/java/test.txt"

Pattern p = Pattern.compile(regEx)

Matcher m = p.matcher(str)

if (!m.find()){

System.out.println("文件路径格式错误!")

return

}

System.out.println(m.group(1))

运行结果:test.txt

正则表达式“.+/(.+)$”的含义就是:被匹配的字符串以任意字符序列开始,后边紧跟着字符“/”,最后以任意字符序列结尾,“()”代表分组操作,这里就是把文件名做为分组,匹配完毕就可以通过Matcher 类的group方法取到所定义的分组了。需要注意的这里的分组的索引值是从1开始的,所以取第一个分组的方法是m.group(1)而不是m.group(0)。

正则表达式:[\\u4e00-\\u9fa5]*|\\w*|\\d*|_*

代码如下:

@Test

public void test1(){

//匹配正则表达式表达式

String str = "[\\u4e00-\\u9fa5]*|\\w*|\\d*|_*"

Pattern pattern = Pattern.compile(str)

//要匹配的字符串

String mStr = "还有多远_344fjdk"

System.out.println("测试的字符串:"+mStr)

Matcher m = pattern.matcher(mStr)

//如果匹配到了

if(m.find()){

System.out.println("匹配内容:"+m.group())

}

}

程序运行结果:

扩展资料

匹配包括下划线的任何单词字符。类似但不等价于“[A-Za-z0-9_]”,"单词"字符使用Unicode字符集,中文的为:[\\u4e00-\\u9fa5],表示英文字母的为\w,表示数字的为\d,表示_的为_,而*号表示的则是0个或多个,|表示的则是或,所以把每个要匹配的用|拼接可以表示要匹配的正则表达式。

参考资料:oracle官网-Java SE API 和文档

1,正则表达式概念介绍(内容来自百度百科):正则表达式,又称规则表达式,英文名为Regular Expression,在代码中常简写为regex、regexp或RE,是计算机科学的一个概念。

正则表通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。

2,检测字符串是否由数字组成,则采用该表达式:

public static void main(String[] args) {

    // 要验证的字符串

    String str = "[email protected]"

    // 是否数字正则表达式

    String regEx = "^[0-9]*$"

    // 编译正则表达式

    Pattern pattern = Pattern.compile(regEx)

    // 忽略大小写的写法

    Matcher matcher = pattern.matcher(str)

    // 字符串是否与正则表达式相匹配

    boolean rs = matcher.matches()

    // 如果为数字,则输出true,反之false,即可用该变量做条件判断

    System.out.println(rs)

}