gpt4 book ai didi

python - 如何过滤python正则表达式中的模式,直到输入单词

转载 作者:太空宇宙 更新时间:2023-11-03 17:48:52 25 4
gpt4 key购买 nike

在Python中,我想提取一个特定的子字符串,直到提供输入单词为止。

考虑以下字符串:-

"Name: abc and Age:24"

我想分别提取字符串“Name : abc and” änd “Age:24”。我目前使用以下模式:

re.search(r'%S+\s*:[\S\s]+',pattern).

但 o/p 是整个字符串。

最佳答案

您可以使用re.findall:

>>> import re
>>> s="Name: abc and Age:24"
>>> re.findall(r'[A-Za-z]+:[a-z\s]+|[A-Za-z]+:\d+',s)
['Name: abc and ', 'Age:24']

Regular expression visualization

Debuggex Demo

在前面的模式中,如字符串中的键(AgeName)以大写字母开头,您可以使用 [A-Za-z]+ 用于匹配它们。这将匹配 len 1 或以上的大写和小写字母的任意组合,但对于 : 之后的字符串的其余部分,您可以只使用小写字母,也相同对于第二部分。但是对于第二部分中 : 之后的字符串,您只需匹配长度为 1 或以上的数字!

如果在 : 之后的第二部分中可能有字符串,您可以使用 \w 而不是 \d :

>>> re.findall(r'[A-Za-z]+:[a-z\s]+|[A-Za-z]+:\w+',s)
['Name: abc def ghi ', 'Location:Earth']

关于python - 如何过滤python正则表达式中的模式,直到输入单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29366378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com