Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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_Apache Spark_Pyspark - Fatal编程技术网

Python 正则表达式搜索一个单词并提取一个字符

Python 正则表达式搜索一个单词并提取一个字符,python,regex,apache-spark,pyspark,Python,Regex,Apache Spark,Pyspark,需要帮助解析字符串,其中包含每个属性的值。下面是我的示例字符串 Type=<Series VR> Model=<1Ac4> ID=<34> conn seq=<2> 我不熟悉使用正则表达式。感谢您的帮助。谢谢此脚本将从字符串中提取键、值: import re s = 'Type=<Series VR> Model=<1Ac4> ID=<34> conn seq=<2>' for k, v in

需要帮助解析字符串,其中包含每个属性的值。下面是我的示例字符串

Type=<Series VR> Model=<1Ac4> ID=<34> conn seq=<2>

我不熟悉使用正则表达式。感谢您的帮助。谢谢

此脚本将从字符串中提取键、值:

import re

s = 'Type=<Series VR> Model=<1Ac4> ID=<34> conn seq=<2>'

for k, v in re.findall(r'([^=]+)=<([^>]+)>\s*', s):
    print('{}={}'.format(k, v))

编辑:您可以将键、值提取到字典,然后通过
访问它。get()

试试这个:

r'([^=]+)=]+)>'
这项工作如下:

  • ([^=]+)
    匹配一组不是
    =
    且至少有一个字符长的字符
  • =]+)
    匹配另一组非
    且至少有一个字符长的字符
  • 要匹配特定的键并“提取”其值,请尝试以下操作(所示示例为
    'Model'
    ):

    r'Model=]+)>'
    

    现在只有一个分组,即与
    中包含的值匹配的
    ([^>]+)
    分组。这可以推广到任何键,比如:
    f'{key}=]+>“

    那么这是Python还是Java?谢谢Collin的解释。是否有任何方法可以搜索特定的键并提取它自己的值。与在字符串中搜索模型并仅返回其值“1Ac4”一样,请确定,而不是使用
    ([^=]+)
    分组,逐字匹配该字符串。例如:
    r'Model=]+)>“
    我会把它放在我的答案中。谢谢你的解决方案谢谢你的快速解决方案Andrej。寻找任何方法来搜索特定的键并提取它自己的值。类似于在字符串中搜索模型并仅返回其值“1Ac4”。。。就像不使用循环和基于键提取值一样,如果不存在,则希望将其设置为null。@marc我更新了我的答案。您可以使用正则表达式生成dict,并通过带有默认值的
    []
    .get()
    访问它(如果没有键)。感谢您提供的解决方案
    import re
    
    s = 'Type=<Series VR> Model=<1Ac4> ID=<34> conn seq=<2>'
    
    for k, v in re.findall(r'([^=]+)=<([^>]+)>\s*', s):
        print('{}={}'.format(k, v))
    
    Type=Series VR
    Model=1Ac4
    ID=34
    conn seq=2
    
    import re
    
    s = 'Type=<Series VR> Model=<1Ac4> ID=<34> conn seq=<2>'
    
    d = dict(re.findall(r'([^=]+)=<([^>]+)>\s*', s))
    
    print(d.get('Model', ''))
    print(d.get('NonExistentKey', ''))
    
    1Ac4