4

私は常に正規表現で完全に途方に暮れているので、ここの誰かが助けてくれることを願っています.

Joomla はこの正規表現を使用して、ini ファイルの行を検証します。

/^(|(\[[^\]]*\])|([A-Z][A-Z0-9_\-]*\s*=(\s*(("[^"]*")|(_QQ_)))+))\s*(;.*)?$/

行にはこの形式があります

JLIB_LOGIN_AUTHENTICATE="Username and password do not match or you do not have an account yet."

明らか"に、値の部分では許可できませんが、許可される可能\"性があります。現在、これは上記の正規表現と一致しています。どのように一致するかはわかりますが、一致しないように正規表現を変更することはできません\"。いろいろなところに追加|(\Q\"\E)してみましたがだめでした。

4

2 に答える 2

6

これを変える:

"[^"]*"

これに:

"(\\"|[^"])*"

オンラインでの動作を確認してください: ideone

于 2012-07-24T23:41:21.803 に答える
3

[^"]と置き換えます([^"]|(\\"))

于 2012-07-24T23:41:53.283 に答える