Regex 通过文本的XPath正则表达式

Regex 通过文本的XPath正则表达式,regex,xml,xpath,text,Regex,Xml,Xpath,Text,我在文本中使用正则表达式时遇到了一个小问题 我的XML文件的部分如下所示 resipes.xml <text name="preparation"> portion= 4 Person time = 20 Minutes difficulty = medium </text> 部分=4人 时间=20分钟 难度=中等 我想要的是在文本中搜索,例如“部分”,只查看“4人” 我将非常感谢您的帮助 谢谢 结果 String='4 Person' 结果

我在文本中使用正则表达式时遇到了一个小问题

我的XML文件的部分如下所示

resipes.xml

 <text name="preparation">
   portion= 4 Person 
   time = 20 Minutes
   difficulty = medium
</text>

部分=4人
时间=20分钟
难度=中等
我想要的是在文本中搜索,例如“部分”,只查看“4人”

我将非常感谢您的帮助 谢谢

结果

String='4 Person'
结果

String='4 Person'

可以使用以下正则表达式模式查找部分的值:

.+portion\s*=\s*(.+)
见a

说明:

+
匹配任何字符

部分
与部分字符串匹配

\s*=\s*
匹配等号,包括前面和后面的空白字符(如果有)


(.+)
捕获行中的其余字符。

您可以使用以下正则表达式模式查找部分的值:

.+portion\s*=\s*(.+)
见a

说明:

+
匹配任何字符

部分
与部分字符串匹配

\s*=\s*
匹配等号,包括前面和后面的空白字符(如果有)


(.+)
捕获行中的其余字符。

这是一个工作示例:

从lxml导入etree

class mySearch:
    def __init__(self, fileName):
        self.doc=etree.parse(fileName)
        self.text = self.doc.getroot().text
        self.values = dict()
        lines = self.text.split('\n')
        for line in lines:
            if line.strip() !='':
                entry = line.split('=')[0].strip()
                value = line.split('=')[1].strip()
                self.values[entry] = value

    def search(self, textTerm):
        try:
            return self.values[textTerm]
        except:
            return 'not found'

k = mySearch('data.xml')
print(k.search('time'))
您可以将该脚本与名为
data.xml
的xml文件放在同一目录中,该xml的内容为:

<text name="preparation">
   portion= 4 Person 
   time = 20 Minutes
   difficulty = medium
</text>

部分=4人
时间=20分钟
难度=中等

这是一个工作示例:

从lxml导入etree

class mySearch:
    def __init__(self, fileName):
        self.doc=etree.parse(fileName)
        self.text = self.doc.getroot().text
        self.values = dict()
        lines = self.text.split('\n')
        for line in lines:
            if line.strip() !='':
                entry = line.split('=')[0].strip()
                value = line.split('=')[1].strip()
                self.values[entry] = value

    def search(self, textTerm):
        try:
            return self.values[textTerm]
        except:
            return 'not found'

k = mySearch('data.xml')
print(k.search('time'))
您可以将该脚本与名为
data.xml
的xml文件放在同一目录中,该xml的内容为:

<text name="preparation">
   portion= 4 Person 
   time = 20 Minutes
   difficulty = medium
</text>

部分=4人
时间=20分钟
难度=中等