首页 > 解决方案 > 表达式的正则表达式模式

问题描述

我需要计算 Excel 单元格中提到的多个组的数量。单元格中有多个组名称,所有组都遵循一定的模式。组名被其他词污染。每个组名在一个单元格中的一行上。

虽然我能够弄清楚使用 VBA 创建函数以进行计数的方法,但我仍在努力使用正则表达式模式,因此最终数字有时包括非组,或者相反不包括组。

Pattern = "(?=.*\d)[^\n " & Chr(34) & "]+"

以下是组名的模式:

3 个大写字母 2 个数字 4 个大写字母 4 个大写字母或 3 个大写字母和 1 个数字 任何长度和任何组合(字母、点、数字、无空格、大写或小写、下划线、破折号)换行 非组可以以大写字母或小写字母开头,但确保它们不是全名的大写字母,必须删除

示例(所有波纹管都在 Excel 的单个单元格中找到)

最初设定

Please write
GTU.10.GENG.GENG.Cloudera_Admin
PRD.12.BFEN.SIDD.WD12LBE0550.Administrator
TST.16.SYWF.GEET.EU.R-Softw.10
Nested in
TST.10.SYWF.GEI1.AS.R
please rename
PRD.16.SYWF.AGIW.AS.W
PRD.16.SYWF.AGIW.AS.R
PRD.16.SYWF.AGIW.AS.W-ExclusionList

预期结果

GTU.10.GENG.GENG.Cloudera_Admin
PRD.12.BFEN.SIDD.WD12LBE0550.Administrator
TST.16.SYWF.GEET.EU.R-Softw.10
TST.10.SYWF.GEI1.AS.R
PRD.16.SYWF.AGIW.AS.W
PRD.16.SYWF.AGIW.AS.R
PRD.16.SYWF.AGIW.AS.W-ExclusionList

标签: regex

解决方案


这将做到:

[A-Z]{3}\.[0-9]{2}\.[A-Z]{4}\.[A-Z]{3}[A-Z0-9].*

请参阅Regex101


推荐阅读