-1

誰かが XML フレーバーの正規表現を大量に提供してくれる状況があり、それらの正規表現を使用して Java および Javascript で検証を行う必要があります。XMLフレーバーの正規表現とJavaフレーバーまたはECMA(Javascript)フレーバーには違いがあるため、これらのXMLフレーバーの正規表現を処理する最善の理由は何ですか?

正規表現:

[A-z]

ジャワ

"A" // true
"Ab" // false
"a" // true

Javascript

"A" // true
"Ab" // true
"a" // true
4

1 に答える 1

1

XML スタイルと ECMAScript スタイルの正規表現の比較表に既にリンクしているので、違いを簡単に把握できます。

関連する違いがいくつかあります。

  • \dJavaScript (および\wJava) の ASCII 数字/英数字のみに一致します。
  • JavaScript は、XML や Java のような Unicode 文字プロパティ (\p{L}など) をサポートしていません。
  • Java も JavaScript も、XML 文字エスケープ ( \iand など\c) や文字クラス減算 ( [a-z-[aeiou]]) をサポートしていません。

したがって、XML 正規表現がこれらの機能のいずれかを使用する場合、それらを簡単に変換することはできません。

Steve Levithan のXRegExp パッケージと Unicode プラグインを使用して Unicode の問題を修正することで、問題の少なくとも一部を修正できます。また、Java 7 では、とのUnicode マッチングを有効にできるため、潜在的な問題のほとんどをカバーできます。\d\w

ただし、それほど明白ではない微妙な実装の違いがある可能性があるため、テストを行う必要があります。

于 2012-12-06T10:38:32.343 に答える