regexp:match()

regexp:match() 根据正则表达式在字符串上执行匹配,并将找到的子匹配作为结果返回。

语法

regexp:match(targetString, regExpString[, flagsString])

参数

targetString

用于执行正则表达式匹配的字符串。

regExpString

要计算的 JavaScript 风格的正则表达式。

flagsString 可选

一个包含字符标志的可选字符串。

字符标志包括

g

全局匹配。返回字符串中每一次匹配的子匹配。如果未指定此标志,则只返回第一次匹配的子匹配。

i

不区分大小写的匹配。如果指定此标志,则匹配将不区分大小写进行。

返回值

一个 match 元素的节点集,其中每个元素的值等于第一个参数字符串中被正则表达式捕获的部分。如果不是全局匹配,则第一个匹配元素的值是整个正则表达式匹配的字符串部分。

例如

xml
<xsl:for-each select="regExp:match('https://mdn.org.cn/en/docs/Firefox_3_for_developers',
                                   '(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)')">
   Part <xsl:value-of select="position()" /> = <xsl:value-of select="." />
</xsl:for-each>

此代码生成以下输出

Part 1 = https://mdn.org.cn/en/docs/Firefox_3_for_developers
Part 2 = https
Part 3 = developer.mozilla.org
Part 4 =
Part 5 = /en/docs/Firefox_3_for_developers

规范

EXSLT - REGEXP:MATCH