提问人:DaveF 提问时间:9/28/2023 最后编辑:kjhughesDaveF 更新时间:9/28/2023 访问量:34
Xpath:有没有一种不那么冗长的方法来过滤多个“包含”条件?
Xpath Is there a less verbose way to filter with multiple 'contain' conditions?
问:
and (contains(BusinessType,'Restaurant') or contains(BusinessType,'Pub') or contains(BusinessType,'Takeaway') <snip...>)
上面的工作方式是预期的返回包含指定单词的案例,但是是否有不那么冗长/更有效的代码?
像这样的东西,但实际上有效吗?
and (contains(BusinessType,'Restaurant|Pub|Takeaway'))
答:
3赞
Mads Hansen
9/28/2023
#1
matches()
接受正则表达式,并会做你想做的事:
matches(BusinessType,'Restaurant|Pub|Takeaway')
1赞
kjhughes
9/28/2023
#2
如果您真的想要针对一组可能的子字符串进行子字符串包含测试(即 不仅应该匹配,而且应该匹配 和 ),然后查看 Mads 的答案 (+1)。BusinessType
'Restaurant'
'Fine Dining Restaurant'
'Non-Restaurants'
如果您确实希望针对一组可能的值进行字符串相等性测试,请按如下方式更新正则表达式:
matches(BusinessType, '^(Restaurant|Pub|Takeaway)$')
或者改用此更简洁的表单:
BusinessType = ('Restaurant', 'Pub', 'Takeaway')
评论
contains()