首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >负后视量词不固定

负后视量词不固定
EN

Stack Overflow用户
提问于 2021-09-19 11:38:15
回答 2查看 74关注 0票数 2

我想从一个文本文件中提取与几个类别相关的数据(除了类别A和B)。子字符串的格式应该类似于

代码语言:javascript
复制
some text preceding Category C This is some text I'm aware of belonging to the categories

为了处理上面的问题,不包括A和B类数据,我有一个简单的负后面正则表达式

代码语言:javascript
复制
(?<!Category A )(?<!Category B )This is some text I'm aware of

然而,我也有一些有限的例子,在文本中的Category A/B后面会有几个字符(最多5个)。例如:

代码语言:javascript
复制
some text Category A 1. This is some text I'm aware of belonging to the categories

因此,我尝试将regex改为:

代码语言:javascript
复制
(?<!Category A.{5})(?<!Category B.{5})This is some text I'm aware of

它在CatA/B之后准确地工作了5个字符,但它不允许我将{5}更改为{0,5}并抱怨:

量词不固定

我怎么才能让这个起作用?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-19 11:41:43

PyPi正则表达式到救援:

代码语言:javascript
复制
import regex
pattern = r"(?<!Category A.{0,5})(?<!Category B.{0,5})This is some text I'm aware of"
print(regex.findall(pattern, "This is some text I'm aware of"))

文档

可变长度的查找后面可以匹配可变长度的字符串.

请参阅Python证明

票数 1
EN

Stack Overflow用户

发布于 2021-09-19 14:21:11

使用Python,如果要匹配除A和B以外的大写字符之外的类别,则可以匹配can,后面跟着0-5个字符,并捕获捕获组中的文本。

代码语言:javascript
复制
\bCategory [C-Z].{0,5}\b(This is some text I'm aware of)\b

Regex演示

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

https://stackoverflow.com/questions/69242881

复制
相关文章

相似问题

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