Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用*或+;在Python的正则表达式中使用括号?_Python_Regex - Fatal编程技术网

如何使用*或+;在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这只是表示字符串是“原始的”()。