$ string()=“这是管理费”;
我打算用RegEx写下一个X-Path来返回上面的语句,因为当$ string包含“admin charge”时,语句返回true。
请参阅上述声明可以包含以下关键字
- admin&&充电||电荷
- 行政与&&充电||电荷
- 管理&&充电||电荷
醇>
请注意,所有和所有这里的root关键字都是“admin”和“charge”。
因此,我想编写一个包含X-Path和RegEx的脚本。
以下是我到目前为止的方法,
contains(upper-case(normalize-space($string)), "ADMIN CHARGES")
这仍然只是完全匹配。
我研究过,但主要是检查单个关键字,比如
contains(upper-case($string), "^[m/ADMIN CHARGE/]"
提前致谢
答案 0 :(得分:2)
正则表达式函数是XPATH 2.0语法的一部分。
但是,PHP使用libxml PHP extension来处理其XML Manipulation,它实现了XPATH 1.0 spec only。
This answer显示了使用PHP / Java Bridge和Saxon的替代方案。它可能是目前最好的选择。
使用XSLT 2.0库,可以使用matches函数。来自TFM:
fn:matches($input as xs:string?, $pattern as xs:string) as xs:boolean
fn:matches( $input as xs:string?,
$pattern as xs:string,
$flags as xs:string) as xs:boolean
matches(., "admin\S*\scharges?", "i")
答案 1 :(得分:1)
将@ JWiley的评论转变为答案:
contains($string,'admin') and contains($string,'charge')