我有一行"1999-08-16"^^xsd:date
。在flex文件中将整个字符串捕获为"1999-08-16"^^xsd:date
的正则表达式是什么?并且,是否有可能仅捕获" 1999-08-16"作为一个字符串。如果是,那么flex中的正则表达式是什么?
答案 0 :(得分:0)
试试这个:
^"(\d{4}-(?:0?[1-9]|1[012])-(?:30|31|[12]\d|0?[1-9]))"\^\^xsd:date$
说明:
^
- 行首\d{4}
- 年份(?:0?[1-9]|1[012])
- 月,可以是:
0?
)1[012]
部分)?:
表示非捕获组(如果我们只需要交替匹配
使用|
,但不将其输出给用户)(?:30|31|[12]\d|0?[1-9])
- 日期部分,可以是:
[12]\d
)0?[1-9]
)
$
匹配行尾""
之间的所有内容都会被捕获到标准捕获组,因为您需要提取日期 <强>注意:强>
在匹配天数时,我们将1-9
天数放入最后的交替组:
(?: 30 | 31 | [12] \ d | <强> 0 [1-9] 强>)
这是因为给定交替匹配时的正则表达式引擎使用FIRST匹配结果而忽略其他匹配的替代。例如-
在字符串1 11
表达式中:
(?:\d{2}|\d)
提供2场比赛(?:\d|\d{2})
提供3场比赛答案 1 :(得分:0)
可以使用捕获整个字符串<xsl:for-each select="education">
。