学会pattern.compile,轻松搞定Java字符串匹配!

吉云

我来分享一下最近捣鼓 Java 正则表达式的一点心得,主要是关于 这个方法的。

我只是想简单地从一段文本里提取些信息。你知道的,就是那种从一大堆文字里找出电话号码、邮箱地址之类的操作。我寻思着这还不简单,直接用字符串的 indexOf()substring() 这些方法搞定得。

结果,我很快就发现自己太天真。因为这些文本的格式并不总是那么规整,有时候电话号码之间有空格,有时候又有横线,甚至还有括号!这下,简单的字符串操作就显得力不从心。

学会pattern.compile,轻松搞定Java字符串匹配!

于是我开始琢磨起正则表达式。这玩意儿,一开始看那些乱七八糟的符号,我头都大。但是没办法,硬着头皮学呗。

在 Java 里,要用正则表达式,就得先搞个 Pattern 对象。这个 Pattern 对象,你可以把它理解成一个“规则”。而创建这个“规则”的,就是 这个方法。

我记得我第一次用的时候,是这样写的:


Pattern pattern = *("\\d{3}-\\d{4}-\\d{4}");

学会pattern.compile,轻松搞定Java字符串匹配!

这里面的 "\\d{3}-\\d{4}-\\d{4}" 就是一个正则表达式,它表示的是一个“3个数字-4个数字-4个数字”的格式,正好可以用来匹配电话号码。那个 ,就是把这个正则表达式编译成一个 Pattern 对象。

Pattern 对象,接下来就可以用它来匹配文本。这一步,需要用到 Matcher 对象。你可以把 Matcher 对象理解成一个“匹配器”,它会拿着 Pattern 对象这个“规则”,去一段文本里找符合规则的内容。

我是这么用的:

学会pattern.compile,轻松搞定Java字符串匹配!

Matcher matcher = *("我的电话号码是123-4567-8901,另一个是987-6543-2109。");

while (*()) {

*("找到电话号码:" + *());

学会pattern.compile,轻松搞定Java字符串匹配!

这段代码里, 方法就是用上面创建的 Pattern 对象,去匹配一段文本。然后, 方法会尝试找到下一个匹配项。如果找到, 方法就能把匹配到的内容给揪出来。

实践总结

  • :将给定的正则表达式编译成一个模式。
  • 使用已编译的模式创建一个匹配器(Matcher)。
  • 学会pattern.compile,轻松搞定Java字符串匹配!

  • 使用匹配器去查找,提取,替换文本中匹配模式的内容。

这回实践让我对 这个方法有更深的理解。它就像一把钥匙,打开正则表达式的大门。虽然正则表达式那些稀奇古怪的符号还是让我头疼,但至少,我现在已经能用它来解决一些实际问题。而且看着代码从一堆文本里精准地找出我想要的信息,还是挺有成就感的。

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]