1

FlexCel、C#、および Regex を使用して Excel 数式のテキストを置き換えようとしていますが、私が行ったグーグル検索では一重引用符は扱いにくいようです。
文字列は次のようになります。
"=RIGHT(CELL(\"filename\",'C.Whittaker'!$A$1),LEN(CELL(\"filename\",'C.Whittaker'!$A$1))-FIND(\"]\",CELL(\"filename\",'C.Whittaker'!$A$1)))"

C.Whittaker別の名前に置き換えたい。常に First Initial になります。姓で、常に一重引用符で囲みます。

この正規表現の一致があります。(?:')[^\"]+(?:')
正規表現が一致することを意味すると思いました(?:')が、置換のためにそれを無視しましたが、そうではないようです。問題は文字列の処理方法に関係していると思われますが、それは私には少しわかりません。

4

3 に答える 3

1

(?:...)非キャプチャ グループです。一致するものはキャプチャしませんが (つまり、文字列のその部分を後方参照によって後で使用できるようにするわけではありません)、それを消費します。あなたが考えているのは、一致するものを消費しないルックアラウンドです。

(?<=')[^']+(?=')

しかし、本当にそれらが必要ですか? 引用符を使用してから、置換文字列に追加する方が簡単な場合があります。つまり、 に置き換え'[^']+'ます'X.Newname'

于 2013-10-30T01:02:52.243 に答える
0

正規表現で文字どおりに取得したい文字をエスケープする必要があると思います...

すなわち:(?:') なる(?:\')

于 2013-10-30T00:12:51.647 に答える