[英]XPath regular expression through text
我在通过文本使用正则表达式时遇到了一个小问题。
我的XML文件的一部分看起来像这样
resipes.xml
<text name="preparation">
portion= 4 Person
time = 20 Minutes
difficulty = medium
</text>
我想要的是在文本中搜索“部分”,然后仅查看“ 4 Person”
我将非常感谢您的帮助
您可以使用以下正则表达式模式查找part的值:
.+portion\s*=\s*(.+)
观看有效的演示 。
说明:
.+
匹配任何字符,
portion
与部分字符串匹配,
\\s*=\\s*
与等号匹配,包括前面和后面的空格字符(如果有),
(.+)
捕获行中的其余字符。
normalize-space(
substring-after(
substring-before(//text/text(), "time"),
"portion="))
结果
String='4 Person'
这是一个工作示例:
从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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.