0

{} で囲まれていない $ 記号をエスケープする正規表現を作成しようとしています。

これは私がこれまでに持っているものです:\^\$|[^\{]\$\

$test 

予想: 一致 実際: 一致

{$test1}

予想: 一致なし 実際: 一致なし

{$test}  $test1

予想: 2 番目の実際に一致:​​ 2 番目の $ 記号の前のスペースに一致

{ $test3 }

予想: 一致なし 実際: $ 記号の前のスペースに一致

したがって、基本的に $ が角かっこで囲まれている場合、一致することはありませんが、他の $ は一致するはずです。

私はphpを使用しており、ブラケットのネストはないと仮定しています.ブラケットと$記号の間に空白(nスペースまたは改行またはタブ、あらゆる種類の空白)が存在する可能性があります。

4

2 に答える 2

0

どうですか:\^(?:{[^}]*}|[^{])*\$\ で代用$1\\$

于 2013-07-01T15:28:58.773 に答える