基本正则表达式是
[^ ]*KEYWORD[^ ]*
关键字 = 自由文本,
我有很多关键字,因此我使用 OR >>>“|”,并在一行中重复正则表达式多次,例如:
[^ ]*210[^ ]*|[^ ]*211[^ ]*|[^ ]*212[^ ]*|[^ ]*213[^ ]*|[^ ]*214[^ ]*
有没有办法简化这个?因为当我进行模拟时,它需要 46057 步,太多了
答案1
如果没有一些示例文本和正则表达式风格(您使用的是什么语言/工具?),很难知道您想要实现什么。但是,考虑到您的正则表达式,它可以简化为:
[^ ]*(?:210|211|212|213|214)[^ ]*
这种构造(?...)
被称为非捕获组,它实际上比捕获组更有效(当然,在您不需要捕获数据的情况下)。
另一种简化方法是:
[^ ]*21[0-4][^ ]*
根据您想要匹配的内容(用于什么[^ ]*
?),以下内容应该足够了:
21[0-4]