如何使用*或+;在Python的正则表达式中使用括号?
输入中有多个空格分隔的字符,例如:如何使用*或+;在Python的正则表达式中使用括号?,python,regex,Python,Regex,输入中有多个空格分隔的字符,例如:string=“a b c d a s e” 模式应该是什么?当我使用模式对输入进行重新搜索时,我将使用.group(j)在输入中获得j第个字符及其后面的空格 我尝试了某种类型的“^([a-zA-Z])\s)+”,但这不起作用。我该怎么办 编辑 我的实际问题在标题中,正文仅描述了一个特殊情况: 下面是问题的一般版本:如果我必须从字符串中接受特定类型的所有模式(最初的问题是模式“[a-zA-Z]\s”),我应该怎么做?如果您可以简单地使用str.split()方法
string=“a b c d a s e”
模式应该是什么?当我使用模式对输入进行重新搜索时,我将使用.group(j)
在输入中获得j
第个字符及其后面的空格
我尝试了某种类型的“^([a-zA-Z])\s)+”
,但这不起作用。我该怎么办
编辑
我的实际问题在标题中,正文仅描述了一个特殊情况:
下面是问题的一般版本:如果我必须从字符串中接受特定类型的所有模式(最初的问题是模式“[a-zA-Z]\s”),我应该怎么做?如果您可以简单地使用str.split()
方法并通过简单的索引访问字符,为什么要使用regex
>>> new = s.split()
>>> new
['a', 'b', 'c', 'd', 'a', 's', 'e']
改为使用findall()
,并按索引获取j
-th匹配项:
>>> j = 2
>>> re.findall(r"[a-zA-Z]\s", string)[j]
'c '
其中[a-zA-Z]\s
将匹配小写或大写字母,后跟单个空格字符。您可以执行以下操作:
>>> string = "a b c d a s e "
>>> j=2
>>> re.search(r'([a-zA-Z]\s){%i}' % j, string).group(1)
'b '
说明:
使用模式([a-zA-Z]\s)
捕获一个字母,然后捕获空格李>
添加了repeation{2}
之后,您将捕获最后一个重复——在本例中是第二个重复(基1与基0索引…)
嗯,在.findall(r“[a-zA-Z]\s]”,…)中,“r”是什么意思?@LucyferZedd这只是表示字符串是“原始的”()。