Python RegEx获取特定字符串后的单词

2024-10-02 08:24:08 发布

您现在位置:Python中文网/ 问答频道 /正文

有弦的

string= """"$deletedFields":["standardizedSkillUrn","standardizedSkill"],"entityUrn":"urn:li:fs_skill:(ACoAAAIv9SQBMzclPm3CZzL1QceTH5W0VrsdxbE,3)","name":"Finance","$type":"voyager.identity.profile.Skill"},{"$deletedFields":["standardizedSkillUrn","standardizedSkill"],"entityUrn":"urn:li:fs_skill:(ACoAAAIv9SQBMzclPm3CZzL1QceTH5W0VrsdxbE,22)","name":"Financial ["standardizedSkillUrn","standardizedSkill"],"entityUrn":"urn:li:fs_skill:(ACoAAAIv9SQBMzclPm3CZzL1QceTH5W0VrsdxbE,34)","name":"Due Diligence","name":"Strategy""""

我可以用什么正则表达式来检索“name”后面的值:以获得应有的勤奋、财务和财务

我试过了

match = re.compile(r'"name"\:(.\w+)') match.findall(string)

但它回来了

['"Finance', '"Financial', '"Due', '"Financial', '"Strategy']Due Diligence被拆分了,我希望这两个词成为一个词。在


Tags: namestringlifsskillduefinancialfinance
2条回答

我将使用non-hungry.*?表达式,并在后面加上引号:

import re

string = """$deletedFields":["standardizedSkillUrn","standardizedSkill"],"entityUrn":"urn:li:fs_skill:(ACoAAAIv9SQBMzclPm3CZzL1QceTH5W0VrsdxbE,3)","name":"Finance","$type":"voyager.identity.profile.Skill"},{"$deletedFields":["standardizedSkillUrn","standardizedSkill"],"entityUrn":"urn:li:fs_skill:(ACoAAAIv9SQBMzclPm3CZzL1QceTH5W0VrsdxbE,22)","name":"Financial ["standardizedSkillUrn","standardizedSkill"],"entityUrn":"urn:li:fs_skill:(ACoAAAIv9SQBMzclPm3CZzL1QceTH5W0VrsdxbE,34)","name":"Due Diligence","name":"Strategy"""

# With the leading double quote
match = re.compile(r'"name"\:(".*?)["\[]')
a = match.findall(string)
print a

# Stripping out the leading double quote
match = re.compile(r'"name"\:"(.*?)["\[]')
b = match.findall(string)
print b

最终输出为:

^{pr2}$

{cdex>只检测到非空白字符^ 1。在

"name"\:(.\w+\s*\w*)用一个额外的单词来解释任何可能的空格(对于三个单词无效,但在您的情况下会)

"name"\:(.\w+\s*\w*"?)解释了每一个结尾处的报价",但没有财务上的收益。 Example

编辑:修正了“金融”的第二个正则表达式

相关问题 更多 >

    热门问题