在python中获取一个字符后的字符串

2024-04-25 15:10:02 发布

您现在位置:Python中文网/ 问答频道 /正文

获取一个位于'%'符号之后且应在其他字符(无数字和字符)之前结束的字符串。 例如:

string = 'Hi %how are %YOU786$ex doing'

它应该以列表的形式返回。在

^{pr2}$

我试过了

string = text.split()

sample = []

for i in string:
    if '%' in i:
        sample.append(i[1:index].lower())
return sample

但我不知道如何摆脱'you786$ex'编辑:我不想导入re


Tags: sample字符串in列表string符号数字hi
3条回答

这可以通过re.findall()轻松完成:

import re
re.findall(r'%([a-z]+)', string.lower())

这将返回:

^{pr2}$

或者可以使用str.split()并在字符上迭代:

sample = []
for token in string.lower().split('%')[1:]:
    word = ''
    for char in token:
        if char.isalpha():
            word += char
        else:
            break
    sample.append(word)

sample将变成:

^{pr2}$

可以使用正则表达式。在

>>> import re
>>> 
>>> s = 'Hi %how are %YOU786$ex doing'
>>> re.findall('%([a-z]+)', s.lower())
>>> ['how', 'you']

regex101 details

{(使用正则表达式^)。在

首先,为您的任务创建一个Regex模式。你可以使用在线工具来测试它。请参见您的任务的正则表达式:https://regex101.com/r/PMSvtK/1

然后在Python中使用以下正则表达式:

import re

def parse_string(string):
    return re.findall("\%([a-zA-Z]+)", string)

print(parse_string('Hi %how are %YOU786$ex doing'))

输出:

^{pr2}$

相关问题 更多 >

    热门问题