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_Python 3.x - Fatal编程技术网

如何在python中获得正则表达式的第一个匹配项

如何在python中获得正则表达式的第一个匹配项,python,regex,python-3.x,Python,Regex,Python 3.x,我有一个字符串: Data=“a”Chain=“Y”Classification=”“Coreentity=“N”createdAt=“2018-05-05”name=“DM_KING”Hour=“23”Sub=“N” 我想提取DM\u KING 我不知道如何匹配最后一个“之后第一次出现的”,即名称之后的,我将正则表达式代码写成: Data=.*name=\” 我希望代码返回DM\u KING, DM_KING可以有任何长度我相信这应该可以: re.search('name="\w+', s)[

我有一个字符串:
Data=“a”Chain=“Y”Classification=”“Coreentity=“N”createdAt=“2018-05-05”name=“DM_KING”Hour=“23”Sub=“N”
我想提取
DM\u KING

我不知道如何匹配最后一个
之后第一次出现的
,即
名称之后的
,我将正则表达式代码写成:

Data=.*name=\”

我希望代码返回
DM\u KING

DM_KING
可以有任何长度

我相信这应该可以:

re.search('name="\w+', s)[0].split("\"")[1]
您可以将其与
re.findall
一起使用。请参阅演示


如果字符串前后的时间是确定的,即名称后出现的小时, 这应该像任何长度名称的魅力一样:

regex = r"name=\"(.*)\" Ho"
试试这个正则表达式

[\s\S]*?name="([^"]*?)"

str.index(sub[,start[,end]])给出了字符串“str”中从“start”位置到“end”位置的子字符串“sub”的索引。

如果您想从输入字符串中获得更多值,这将是一个使用:

:

  • name=“
    按字面意思匹配字符
    name=“
    区分大小写)
  • 命名捕获组“name”
    (?P[^”]+)
  • 匹配列表中不存在的单个字符[
    ]
  • +
    量词-在一次和无限次之间进行匹配,尽可能多地匹配,根据需要返回(贪婪)
  • 按字面意思匹配字符

您可以使用此正则表达式
name=“([^”]+)”

此正则表达式搜索
name=“
”,然后将除
之外的所有找到的内容分组,并在看到
后停止捕获。然后可以打印在group1中捕获的任何内容

Python代码

import re

str = 'Data="a" Chain="Y" Classification="" Coreentity="N" createdAt="2018-05-05" name="DM_KING" Hour="23" Sub="N"'
name = re.search(r'name="([^"]+)"', str)
print(name.group(1))
印刷品

DM_KING

虽然这可能回答了这个问题,但解释代码如何工作通常是最佳实践。
import re
data = 'Data="a" Chain="Y" Classification="" Coreentity="N" createdAt="2018-05-05" name="DM_KING" Hour="23" Sub="N"'
matcher = re.compile('name="(?P<name>[^"]+)"')
match = matcher.search(data)
print(match.group('name'))
DM_KING
import re

str = 'Data="a" Chain="Y" Classification="" Coreentity="N" createdAt="2018-05-05" name="DM_KING" Hour="23" Sub="N"'
name = re.search(r'name="([^"]+)"', str)
print(name.group(1))
DM_KING