Something like .//div[@id='foo\d+]
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:
starts-with()
and translate()
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()
and regexp:test()
Use XPath 2.0/XSLT 2.0 and its inbuilt support for regular expressions (the functions matches(), replace() and tokenize())