我在文本中使用正则表达式有一个小问题。
我的XML文件部分看起来像这样
resipes.xml
<text name="preparation">
portion= 4 Person
time = 20 Minutes
difficulty = medium
</text>
我想要的是在文本中搜索,例如为“部分”,只查看“4人”
我将非常感谢任何帮助 谢谢
答案 0 :(得分:1)
您可以使用以下正则表达式模式来查找部分的值:
.+portion\s*=\s*(.+)
说明:
.+
匹配任何字符,
portion
匹配部分字符串
\s*=\s*
匹配等号,包括前后空白字符(如果有),
(.+)
捕获该行中的其余字符。
答案 1 :(得分:0)
normalize-space(
substring-after(
substring-before(//text/text(), "time"),
"portion="))
结果
String='4 Person'
答案 2 :(得分:-1)
这是一个有效的例子:
来自lxml import 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>