0

$ string()="これは管理者料金がかかります";

私がやろうとしているのは、$ stringに「admincharge」が含まれている場合にステートメントがtrueを返すという意味で、上記のステートメントをtrueに戻すためにRegExを使用してX-Pathを書き留めることです。

上記のステートメントには、次のキーワードを含めることができます。

  1. 管理者&&料金|| 料金
  2. 管理&&料金|| 料金
  3. 管理&&料金|| 料金

ここでのルートキーワードは「admin」と「charge」です。

したがって、X-PathとRegExを組み込んだスクリプトを作成したいと思います。

これまでの私のアプローチは次のとおりです。

contains(upper-case(normalize-space($string)), "ADMIN CHARGES")

これはまだ完全に一致するだけです。

私は調査しましたが、ほとんどの場合、次のような単一のキーワードをチェックすることです

contains(upper-case($string), "^[m/ADMIN CHARGE/]"

前もって感謝します

4

2 に答える 2

2

正規表現関数は、XPATH2.0構文の一部です。

ただし、PHPはlibxml PHP拡張機能を使用して、XPATH1.0仕様のみを実装するXML操作を処理します。

この回答は、PHP /JavaBridgeと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")
于 2013-01-14T08:38:09.537 に答える
1

@JWileyのコメントを答えに変える:

contains($string,'admin') and contains($string,'charge')
于 2013-01-11T18:02:00.043 に答える