Regex 通过文本的XPath正则表达式
我在文本中使用正则表达式时遇到了一个小问题 我的XML文件的部分如下所示 resipes.xmlRegex 通过文本的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' 结果
<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分钟
难度=中等