java正则表达式面试_【Java面试宝典】正则表达式

● 请你谈谈Java中是如何支持正则表达式操作的?

考察点:正则表达式

参考回答:

Java中的String类提供了支持正则表达式操作的方法,包括:matches()、replaceAll()、replaceFirst()、split()。此外,Java中可以用Pattern类表示正则表达式对象,它提供了丰富的API进行各种正则表达式操作,如:

面试题: - 如果要从字符串中截取第一个英文左括号之前的字符串,例如:北京市(朝阳区)(西城区)(海淀区),截取结果为:北京市,那么正则表达式怎么写?

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class RegExpTest {

public static void main(String[] args) {

String str = "成都市(成华区)(武侯区)(高新区)";

Pattern p = Pattern.compile(".*?(?=\\()");

Matcher m = p.matcher(str);

if(m.find()) {

System.out.println(m.group()); //成都市

}

}

}

完全看不懂,慢慢查阅资料

正则表达式-语法

https://www.runoob.com/regexp/regexp-syntax.html

菜鸟教程

大学最好的老师教过我们Linux基础,有讲过正则,所以我就略过。

正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

Pattern.compile方法

易佰教程

https://www.yiibai.com/javaregex/javaregex_pattern_compile.html

java.util.regex.Pattern.compile(String regex)方法将给定的正则表达式编译为模式。

声明

以下是java.util.regex.Pattern.compile(String regex)方法的声明。

public static Pattern compile(String regex)

参数

regex - 要编译的表达式。

异常

PatternSyntaxException - 如果表达式的语法无效。

示例

以下示例显示了java.util.regex.Pattern.compile(String regex)方法的用法。

import java.util.regex.MatchResult;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class PatternDemo {

private static final String REGEX = "(.*)(\\d+)(.*)";

private static final String INPUT = "This is a sample Text, 1234, with numbers in between.";

public static void main(String[] args) {

// create a pattern

Pattern pattern = Pattern.compile(REGEX);

// get a matcher object

Matcher matcher = pattern.matcher(INPUT);

if(matcher.find()) {

//get the MatchResult Object

MatchResult result = matcher.toMatchResult();

//Prints the offset after the last character matched.

System.out.println("First Capturing Group - Match String end(): "+result.end());

}

}

}//原文出自【易百教程】,商业转载请联系作者获得授权,非商业请保留原文链接:https://www.yiibai.com/javaregex/javaregex_pattern_compile.html

编译并运行上面的程序,这将产生以下结果

First Capturing Group - Match String end(): 53

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值