php - MasterFormat 分类正则表达式
问题描述
我需要一个验证 MasterFormat 分类字符串的方法,该字符串由一组数字和一个标题字符串组成。
以字符串开头的数字必须是:
3 组 2 位数字,以空格分隔:
09 68 13
最后一组数字也可以是小数:
09 68 13.36
后跟一个空格
然后是一串单词来表示标题,每个单词的第一个字母要大写
09 68 13 Tile Carpeting
09 68 13.36 Tile Carpeting
我有一个似乎可以工作的开始,但我似乎无法正确添加单词字符串。
\d{2}\s\d{2}\s\d{2}(\.\d{2}){0,1}
这将在 Laravel 规则中得到验证。
解决方案
您可以使用
^\d{2}\s\d{2}\s\d{2}(?:\.\d{2})?\s+\p{Lu}\p{L}*(?:\s+\p{Lu}\p{L}*)*\s*$
请参阅正则表达式演示。详情:
^
- 字符串的开始\d{2}\s\d{2}\s\d{2}
- 两位数,空格,两位数,空格,两位数(?:\.\d{2})?
- 一个可选的非捕获组,匹配 1 次或 0 次出现的 a.
,然后是两个数字\s+
- 1+ 空格\p{Lu}\p{L}*
- 一个大写字母后跟 0+ 个字母(?:\s+\p{Lu}\p{L}*)*
- 0 次或多次出现 1+ 个空格,后跟一个大写字母,后跟 0+ 个字母\s*
- 0+ 个空格$
- 字符串结束。
推荐阅读
- javascript - 当另一个 div 打开时关闭一个 div
- python - 无法将第二个图添加到对数变换图
- java - 用数组的所有排列替换 for 循环 - Java
- java - IDEA 不想使用 javax 中的 NotNull,而是使用 org.jetbrains
- apache-flink - Flink 是否支持键控水印?如果没有,是否有在未来版本中实施的计划?我的替代方案是什么?
- linux - 谁能告诉我 Busybox 是如何实现自动补全的
- php - php 在 meta_value 上更改图像
- automation - 我如何下载robotium eclipse插件?
- forms - 如何在 Symfony 4 中定义一个名为“handleRequest”的未定义方法?
- javascript - Javascript轮播,显示随机div并每3秒更改一次