简体   繁体   English

正则表达式 python 中的多个匹配词

[英]Multiple matching words in regex python

Desired Output The requirement is to pull the exactly next word after the search word and write to the MODEL column.所需的 Output要求是在搜索字之后提取下一个字并写入 MODEL 列。 To pull features, we have only one word ie.要提取功能,我们只有一个词,即。 FEATURE and write the corresponding feature to its model. FEATURE 并将相应的特征写入其 model。 Some models may not have features.某些型号可能没有功能。

Models will be alphanumeric in nature and features can be single alphabet or an alphanumeric word.模型本质上是字母数字的,特征可以是单个字母或字母数字单词。

Attaching Image of the desired output.附加所需 output 的图像。

Code:代码:

STRING-1 = "YOU POSSESS PRODUCT CAR1 HAVING FEATURE O. PART CAR2 HAVING FEATURE Z. SPECIFICATION CAR3 HAVING FEATURE D."

STRING-2 = "YOU POSSESS PRODUCT CAR4 HAVING FEATURE O. PART CAR5 HAVING FEATURE Z."

STRING-3 = "YOU POSSESS PRODUCT CAR6."

search_words = [
"PRODUCT",
"PART",
"SPECIFICATION"
]

MODEL = []

for search_word in search_words:
    MODEL.append(STRING-1.split(search_word, 1)[1].split()[0])
    MODEL.append(STRING-2.split(search_word, 1)[1].split()[0])
    MODEL.append(STRING-3.split(search_word, 1)[1].split()[0])
print(MODEL)

Output: Output:

['CAR1', 'CAR2', 'CAR3', 'CAR4', 'CAR5', 'CAR6']

Try尝试

>>> import re
>>>
>>> rx = re.compile( r"(?i)(?:PRODUCT|PART|SPECIFICATION)\s+(\w+)(?:\s+HAVING\s+FEATURE\s+(\w+))?" )
>>>
>>> input = '''
... Sample Input String-1: YOU POSSESS PRODUCT CAR1 HAVING FEATURE O. PART CAR2 HAVING FEATURE Z. SPECIFICATION CAR3 HAVING FEATURE D.
... Sample Input String-2: YOU POSSESS PRODUCT CAR4 HAVING FEATURE O. PART CAR5.
... Sample Input String-3: YOU POSSESS PRODUCT CAR6 HAVING FEATURE G.
... '''
>>>
>>> rx.findall(input)
[('CAR1', 'O'), ('CAR2', 'Z'), ('CAR3', 'D'), ('CAR4', 'O'), ('CAR5', ''), ('CAR6', 'G')]

demo演示

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

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