在Python3.x中使用正则表达式获取字符串的一部分
所以我想做的是有一个名为a的输入字段。然后用一行正则表达式检查a中的“我是(某物)”(注意某物可能是一系列单词),然后打印出你是(某物)多久了 这是我目前的代码:在Python3.x中使用正则表达式获取字符串的一部分,python,regex,string,python-3.x,findall,Python,Regex,String,Python 3.x,Findall,所以我想做的是有一个名为a的输入字段。然后用一行正则表达式检查a中的“我是(某物)”(注意某物可能是一系列单词),然后打印出你是(某物)多久了 这是我目前的代码: if re.findall(r"i am", a): print('How long have you been {}'.format(re.findall(r"i am", a))) 但这会给我一张清单,上面列出的[我,我]不是(某物)。我如何让它归还我(某物?) 谢谢 Python上的n00b是这样的意思吗 >&g
if re.findall(r"i am", a):
print('How long have you been {}'.format(re.findall(r"i am", a)))
但这会给我一张清单,上面列出的[我,我]不是(某物)。我如何让它归还我(某物?)
谢谢
Python上的n00b是这样的意思吗
>>> import re
>>> a = "I am a programmer"
>>> reg = re.compile(r'I am (.*?)$')
>>> print('How long have you been {}'.format(*reg.findall(a)))
How long have you been a programmer
r'I am(.*?$”
匹配I am
,然后匹配字符串末尾的所有内容
要在后面匹配一个单词,可以执行以下操作:
>>> a = "I am an apple"
>>> reg = re.compile(r'I am (\w+).*?$')
>>> print('How long have you been {}'.format(*reg.findall(a)))
How long have you been an
这可能只是一个简单的解决方案,可以避免使用weight和cost regexp
>>> a = "i am foxmask"
>>> print a[5:]
foxmask
在“我是新手程序员”中,你想打印“新手程序员”而不是“新手程序员”不是吗?显示一些示例
a
@nearocomplayer乐于帮助:)。还有一件事@Haidro这匹配了我之后的所有单词。如何使其仅与1匹配?@新手程序员我添加了一个解决方案,可能只需将(.*)
更改为\w+
,但这次它将返回“a”而不是“程序员”@FoxMaSk他只需要后面的单词。似乎OP想要使用常规表达式是的,我知道,但可能会看到“re”的替代选项这个简单的模块question@FoxMaSk我需要正则表达式,因为我可以在一行中的任何地方,而不仅仅是在一开始see@NoviceProgrammer不能在不确定单词长度的情况下使用切片表示法