java - 使用 JAVA 查找正则表达式模式
问题描述
我需要一个正则表达式来表示以下内容:
9845d530c7594ab45e8b905bbff
它应该总是以 984 开头,然后有一个 UUID,最大长度应该是 27。这里是 5d530c7594ab45e8b905bbff(UUID)。我知道 UUID,但我不知道如何将它组合在一起。对于从 984 开始,它应该是
^984
并且对于特定长度,它应该是
\d{27}
但我不确定 UUID(这里应该不区分大小写)。
解决方案
^984[0-9a-fA-F]{24}$
快速解释:
^984
必须以“984”开头[...]{24}$
与给定字符集匹配的 24 个字符,然后结束[0-9a-fA-F]
包含任何数字 0-9、字符 af 或字符 AF 的字符集
您也可以\d
对数字部分使用字符类(必须是单个数字),但我喜欢明确,否则我的大脑会受伤。如果您正在针对可能具有多个数字表示的未知字符集运行字符类,则很有用。例如,\d
可能匹配阿拉伯数字 (٠ ١ ٢ ٣ ٤ ٥ ٦ ٧ ٨ ٩) 或梵文数字 (० १ २ ३ ४ ५ ६ ७ ८ ९)。
还有一些正则表达式“修饰符”允许不区分大小写,而不必在字符集中指定大小写。它确实取决于您使用的正则表达式实现。
Java 的内置正则表达式库有一个修饰符标志:
Pattern.compile("^984[0-9a-f]$",CASE_INSENSITIVE);
推荐阅读
- sql - 将不同表的行组合成可以有值的一行
- python - 为什么我的函数没有提示我输入输入?
- php - 如果表单中的值为空白,如何显示警报消息
- java - 将外键连接到中间实体
- ruby-on-rails - Ruby on Rails - 想要使用自动生成的时间戳创建表
- java - 如何将 ISO 代码转换为 MySQL 表中的国家/地区名称?
- java - 在java中将'return'关键字放在哪里?
- postgresql - PostgreSQL 外部事务功能
- windows - 谁能解释一下这个平面汇编代码是如何工作的?
- python - Python,Matplotlib:当x为时间时如何设置轴范围?