首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >查找1-3字前面有4位数,后面跟着非alpha字符或1-4特定的单词。

查找1-3字前面有4位数,后面跟着非alpha字符或1-4特定的单词。
EN

Stack Overflow用户
提问于 2015-05-29 11:32:57
回答 1查看 102关注 0票数 0

我正在查看excel中的一长串数据。在这个长列表中,有一个列,它包含数字字符(数字)和阿尔法字符,以及非α-数字字符。-所以是文字栏。我正试图在本专栏的单元格中间找到1-2个单词。这些单词出现的时间总是在一个四位数和一个空格之后。(注:4位数字不出现在我不感兴趣的单词前面)。

我有一个工具,允许我将正则表达式列表保存在excel中,并编写了一个规则列表,这些规则将在每个单词在3-11个字符之间找到4位数字和两个单词,然后将匹配提取到一个新的列示例:-

代码语言:javascript
运行
复制
\b\d{4}\b\s*\b[A-Z]{11}\s*\b[A-Z]{11}\s*

\b\d{4}\b\s*\b[A-Z]{10}\s*\b[A-Z]{11}\s*

\b\d{4}\b\s*\b[A-Z]{9}\s*\b[A-Z]{11}\s*

\b\d{4}\b\s*\b[A-Z]{8}\s*\b[A-Z]{11}\s*

and

\b\d{4}\b\s*\b[A-Z]{11}\s*\b[A-Z]{10}\s*

\b\d{4}\b\s*\b[A-Z]{11}\s*\b[A-Z]{9}\s*

\b\d{4}\b\s*\b[A-Z]{11}\s*\b[A-Z]{8}\s*

b\d{4}\b\s*\b[A-Z]{11}\s*\b[A-Z]{7}\s*

这已经创建了一个包含121个不同组合的列表,并且运行得非常好。

我相信有一种比我选择的更简单的方式来写这些,但这很好。使用复制和粘贴,我花了大约10分钟,一旦我知道如何写规则,并运行10秒。-

唯一的问题是-在我只想找到一个单词的情况下,有时在我不想包含的第一个单词之后出现的其他4个基于alpha的单词中有一个。这些是:-

代码语言:javascript
运行
复制
INTE
MANU
PMNT
Payment

我想要做的是,在上面的正则表达式中包括一个部分,它排除了找到上述示例的任何第二个单词。

有没有办法在我现有的规则列表中添加一些排除这些规则的内容,或者更好的方法,以一种完全不同、更优雅的方式来做我想做的事情,因为在非常少的情况下,实际上有3个单词我想找到--为了补偿我需要把我的列表提高到1331个组合?

在这方面的任何帮助都是很棒的,因为我们每周都会得到这些精确的数据列表,而手动完成这一操作显然是不可能的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-29 11:58:10

您可以使用与所有121种模式和排除要求等效的以下正则表达式:

代码语言:javascript
运行
复制
\b\d{4}\b\s*\b[A-Z]{3,11}\s*\b(?!(INTE|MANU|PMNT|Payment)\b)[A-Z]{3,11}\s*
                     ^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^       ^^^^

请参阅演示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30528534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档