如何在Java中使用正则表达式?

正则表达式是用于文本搜索的非常重要的工具。 以下是用于执行正则表达式搜索并基于正则表达式捕获字符串的不同部分的代码段

 public class RegexTest { public static void main(String[] args) { String name = "01_My-File.pdf" ; match(name); match( "09_03_12File.docx" ); match( "09_03_12File.q123" ); } public static void match(String input){ System.out.println( "********* Analysing " + input+ " *********" ); String regex = "([0-9]+)([_])(.*)([\\.])([A-Za-z]+)" ; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(input); if (!matcher.matches()){ System.out.println( "Input not matches regex" ); return ; } System.out.println( "Matches: " + matcher.matches()); String number = matcher.group(1); System.out.println( "Index: " + number); String fileName = matcher.group(3); System.out.println( "FileName: " + fileName); String extension = matcher.group(5); System.out.println( "Extension: " + extension); }  } 

使用()捕获组。 在上面的正则表达式中([0-9]+)([_])(.*)([\.])([A-Za-z]+)

  • 第一组定义为至少一个数字的数字
  • 第二组是固定字符_
  • 第三组是任何文本。
  • 第四组是固定字符。 (我们必须使用\\进行转义.因为在正则表达式中, .表示任何字符,符号,空格或数字)。
  • 第五组是长度大于0的字符组。

我们使用Pattern类来编译正则表达式,并使用它匹配输入以生成Matcher实例。 此Matcher具有有关正则表达式匹配结果的信息。

翻译自: https://www.javacodegeeks.com/2020/02/how-to-use-regular-expression-in-java.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/341140.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

xxx is not in the sudoers file.This incident will be reported错误

一 问题解决 在执行sudo命令时会有如下提示: xx is not in the sudoers file. This incident will be reported. 原因分析:一般这种情况是创建了新用户,没有对应修改sudoers文件或者group文件。 解决方法: 方法1:…

Ubuntu压缩与解压文件

tar -xvf FileName.tar # 解包tar -cvf FileName.tar DirName # 将DirName文件打包 注意 -c create -x extract

java字节码_好的,每个接触Java字节码的人

java字节码Oracle诉Google一案认为,复制Java API的结构,序列和组织是侵犯版权的行为。 侵犯版权不仅是复制行为,而且还适用于拥有该作品副本的所有中间方。 那就是编写/编译任何JVM语言的人,以及在他们拥有的任何设备上都有JAR文…

使用WireMock进行更好的集成测试

无论您是遵循传统的测试金字塔还是采用诸如“ 测试蜂窝”这样的较新方法,都应该在开发过程中的某个时候开始编写集成测试。 您可以编写不同类型的集成测试。 从持久性测试开始,您可以检查组件之间的交互,也可以模拟调用外部服务。 本文将讨论…

Acwing刷题第一节

756 题目分析 &#xff1a; 要点如下&#xff1a; 1. 矩阵遍历&#xff1a;确定遍历方向 2. 确定遍历边界 #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int N 110; int n,m; int res[N][N];int main() {…

Jetty,Java和OAuth入门

使用Okta的身份管理平台轻松部署您的应用程序 使用Okta的API在几分钟之内即可对任何应用程序中的用户进行身份验证&#xff0c;管理和保护。 今天尝试Okta。 Jetty是一个小型&#xff0c;高度可扩展的基于Java的Web服务器和servlet引擎。 它支持HTTP / 2&#xff0c;WebSocket…

vscode 设置 sublime 的主题

vscode 怎么设置 sublime 的主题&#xff1f; VsCode中提供多种主题样式&#xff0c;供使用者选择。 由于习惯于Sublime默认主题&#xff0c;因此将VsCode主题更换为Sublime默认主题。 首先点击编辑器顶部导航菜单中的【文件】&#xff1b; 然后点击【首选项】下【颜色主题】…

VsCode与Sublime编辑器优缺点对比

一 VS code与Sublime共同点 文本功能强大&#xff0c;支持各种语言高亮支持编译&#xff0c;且可以在控制台看到输出可安装大量插件 二 VsCode优点 1. 插件管理成熟 插件很多&#xff0c;近vscode发展势头猛&#xff0c;安装插件方便简单&#xff0c;有插件的详细介绍 vscode新…

spring预加载与懒加载_通过Spring将继承树加载到List中

spring预加载与懒加载我注意到有趣的Spring功能。 我的一位同事使用它将Spring Bean的整个继承树加载到列表中。 在学习Spring文档时错过了这一点。 让我们来看看Spring bean的继承树&#xff1a; 下面的代码片段是通过构造函数注入将此豆树加载到列表中的&#xff1a; Comp…

VsCode连接远程服务器并修改文件代码

一 插件安装配置 1. 安装远程开发插件Remote Development&#xff0c;在商店中搜索Remote Development并安装。 2、选择SSH Targets 安装完成后&#xff0c;vscode左侧多出了一个菜单栏&#xff0c;我们点击配置按钮配置远程服务器的地址。选择SSH Targets。 二 远程服务器配…

Java和Round-Robin上的AtomicInteger

AtomicInteger属于Atomic Variables族。 主要好处是使用它不会阻塞而不是进行阻塞同步&#xff0c;因此避免了线程的挂起和重新调度。 AtomicInteger基于“比较和交换”机制&#xff0c;并且是原子变量的标量组的一部分。 我们的第一个用例是可以多次访问的网页上的功能。 pa…

VsCode打开终端的方法

方法1&#xff1a;打开终端的常规方法 打开VScode后&#xff0c;鼠标左键单击窗口顶部的【查看】&#xff08;如下图红圈标注&#xff09;&#xff0c; 在下拉列表中找到【终端】&#xff08;如下图红框标注&#xff09; 鼠标左键点击【终端】即可打开终端子窗口&#xff0c;如…

Ubuntu下VScode配置ssh免密远程登录

一 实现步骤 1.在本机与远程服务器上&#xff0c; 输入ssh-keygen -t rsa&#xff0c;然后连续回车直到结束 2.在本机上执行命令 ssh-copy-id 命令 &#xff08;1&#xff09;.命令介绍 ssh-copy-id命令可以把本地的ssh公钥文件安装到远程主机对应的账户下。 达到的功能&am…

VSCode隐藏左边活动栏

用sublime时间较长&#xff0c;VsCode左边的活动栏看上去有些多余。查询隐藏活动栏的快捷键&#xff0c;但没有找到。通过vscode怎么隐藏左边栏&#xff1f; - 知乎有快捷键可以隐藏左边栏么&#xff1f;https://www.zhihu.com/question/48285162 问题&#xff0c;找到相关处理…

java 从未导入_Java 8的10个您从未听说过的功能

java 从未导入Lambdas lambdas lambdas。 这是您在谈论Java 8时所听到的所有信息。但这只是一部分。 Java 8具有许多新功能-一些功能强大的新类和习惯用法&#xff0c;而另一些则是从一开始就应该存在的功能。 我想介绍十个新功能&#xff0c;我认为这些功能绝对是值得了解的小…

删除当前路径下含某个关键字的所有文件

一 查找含关键字的所有文件名 此处拿"T5"举例 1. 使用ls命令查找 ls -R | grep T5 # -R 显示文件夹内部所有文件 2. 使用find命令 find . -name "*T5*" 二 将查找到的文件删除 find . -name "*T5*" |xargs rm -rf xargs - build and exec…

Typora设置标题自动标号

Typora由于默认标题无法自动标号&#xff0c;每次编辑时需要手动处理。为实现标题自动编号&#xff0c;需要进行相关操作。 一 官方说明 To achieve this, add the following to your base.user.css or [theme].user.css in the theme folder. /** initialize css counter */ …

捕获Java堆转储的7个选项

堆转储是诊断与内存相关的问题的重要工件&#xff0c;例如内存泄漏缓慢&#xff0c;垃圾回收问题和java.lang.OutOfMemoryError。它们也是优化内存消耗的重要工件。 有很多很棒的工具&#xff0c;例如Eclipse MAT和Heap Hero&#xff0c;可以分析堆转储。 但是&#xff0c;您需…

Ubuntu对CPU进行测试

一 用 stress 工具对CPU进行压力测试 1.软件安装 sudo apt-get update #日常先更新再安装东西不容易出错 #下一條語句可以省略 sudo apt-get install -y linux-tools-$(uname -r) #系统基本功能安装 sudo apt-get install stress #安装stress软件 sudo stress -c 2 -t 100 …