繁体   English   中英

如何从python Regex中的给定字符串中提取特定长度的字符

[英]How to extract characters of particular length from a given string in python Regex

如何从python Regex中的给定字符串中提取特定长度的字符

嗨,我有像,

例如:

  1. 健康保险便携性.NEG比率
  2. 健康保险便携性.NEGRatio
  3. 健康保险可移植性NEGRatio

在这里我需要提取NEG作为我在python中编写正则表达式

Portability(.+?) Ratio,
Portability(.+?)Ratio 

在可移植性之后我第一次“NEG”是我应该得到的价值。 第一个和第二个记录给出正确的输出为“NEG”。 但在我的第三张唱片中,我得到的是“NEG NEG”,这是一个错误的值。

我也只需要获得第三个记录的“NEG”。我应该给前三个字符的长度只取“NEG”。 如果是这样,请告诉我如何根据这一点编写正则表达式?

. 表示任何字符, +符号表示“至少一个”但不指定上限。 你想要\\w{n} ,其中\\w表示字符, n表示出现次数。

另请注意\\w包含算术数字,因此如果您只想要字母,最好使用[a-zA-Z]{3}

如果在使用Portability之后必须提取任何 3个字符

re.findall(r"Portability(.{3}).*?Ratio", s)

请参阅正则表达式演示

如果这些是大写字母,请用[AZ]{3}替换.{3} [AZ]{3}

细节

  • Portability - 文字字符序列
  • (.{3}) - 捕获组1:正好3个字符(如果不使用re.S / re.DOTALL修饰符,则除了换行符之外的任何字符),因为{3}是一个限制量词,匹配内部定义的出现次数{...}
  • .*?Ratio - 除了换行符之外的任何0+字符尽可能少(因为*?是一个惰性量词)直到第一个Ratio子字符串。

re.findall只返回捕获的值,因此您只能获得NEG

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM