Regex to split string with the last occurrence of a dot, colon or underscore(使用最后出现的点、冒号或下划线拆分字符串的正则表达式)
本文介绍了使用最后出现的点、冒号或下划线拆分字符串的正则表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我们有数千行数据,其中包含各种格式的文章枚举,我需要将主要文章编号从大小指示器中分离出来。在一些最后的字符之间(几乎)总是有点、破折号或下划线(不总是2)。简而言之:数据为主文编号+大小指标,分隔符不同,只有1/3。-_
问题:如何拆分正文编号+大小指标?我的下面的正则表达式不能正常工作,这是我基于某个Google-ing构建的。
preg_match('/^(.*)[.-_]([^.-_]+)$/', $sku, $matches);
样本数据+预期结果
AR.110052.15-40 [AR.110052.15 & 40]
BI.533.41-41 [BI.533.41 & 41]
CG.00554.000-39 [CG.00554.000 & 39]
LL.PX00.SC004-40 [LL.PX00.SC004 & 40]
LOS.HAPPYSOCKS.1X [LOS.HAPPYSOCKS & 1X]
MI.PMNH300043-XXXXL [MI.PMNH300043 & XXXXL]
推荐答案
您需要将-
移到Character类的末尾,以使正则表达式引擎将其解析为文字连字符:
^(.*)[._-]([^._-]+)$
请参阅regex demo。实际上,即使^(.+)[._-](.+)$
也可以。
^
-匹配字符串的开头(.*)
-组1捕获任意0+个字符,直到最后一个.[._-]
-.
或_
或-
([^._-]+)
-组2:.
、_
和-
以外的一个或多个字符$
-字符串结尾。
这篇关于使用最后出现的点、冒号或下划线拆分字符串的正则表达式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:使用最后出现的点、冒号或下划线拆分字符串的正则表达式
基础教程推荐
猜你喜欢
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 在多维数组中查找最大值 2021-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 超薄框架REST服务两次获得输出 2022-01-01