簡體   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