问题描述
类似于 .//div[@id='food+]
的东西,用于使用 id='foo123'
捕获 div 标签.
我正在使用 .NET,如果这很重要.
正如其他答案所指出的,XPath 1.0 不支持正则表达式.
尽管如此,您还有以下选择:
- 使用 XPath 1.0 表达式(注意
starts-with()
和translate()
函数)像这样:
使用 EXSLT.NET -- 有一种方法可以直接在 XPath 表达式中使用其函数,而无需使用 XSLT.允许使用 RegEx-es 的 EXSLT 扩展函数是:
regexp:match()
, regexp:replace() 和regexp:test()
使用XPath 2.0/XSLT 2.0 及其对正则表达式的内置支持(函数matches(), replace() 和 tokenize())
Something like .//div[@id='food+]
to capture div tags with id='foo123'
.
I'm using .NET, if that matters.
As other answers have noted, XPath 1.0 does not support regular expressions.
Nonetheless, you have the following options:
- Use an XPath 1.0 expression (note the
starts-with()
andtranslate()
functions) like this:
.//div [starts-with(@id, 'foo') and 'foo' = translate(@id, '0123456789', '') and string-length(@id) > 3 ]
Use EXSLT.NET -- there is a way to use its functions directly in XPath expressions without having to use XSLT. The EXSLT extension functions that allow RegEx-es to be used are:
regexp:match()
,regexp:replace()
andregexp:test()
Use XPath 2.0/XSLT 2.0 and its inbuilt support for regular expressions (the functions matches(), replace() and tokenize())
这篇关于我可以在 XPath 表达式中使用正则表达式吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!