1

コードパーサーの正規表現を作成しています。文字列リテラルを認識する必要があり、次の正規表現を作成しました。

"([^"]|(\\"))+"?

これらのケースに一致させる必要があります:

"Some String
"another string \" string
"blah blah \" blah "

これらはありません:

"Some String"a
"blah blah \" blah "b

"で始まる必要があります

その後は、"以外の任意の文字が必要です。

別の"がある場合は、最後にある必要があるか、\でエスケープする必要があります

私の正規表現は機能しません:(私は次の場所でテストしました: http://gskinner.com/RegExr/この場合:

"asdasdsd\"sadasd

のみを選択します:

"asdasdsd\"

なぜ?

どうもありがとう!:)

4

2 に答える 2

0

or 操作を逆にする必要があります...ここではPythonにあります

>>> print re.search(r'"(\\"|[^"])+','"asdasdsd\\"sadasd').group(0)
"asdasdsd\"sadasd

その理由は、最初に [^"] を使用すると、バックスラッシュが吸収され、引用符に当たると失敗するためです

これ

"([^"]|(\\"))+"?

になる

"(\\"|[^"])+"?

*注: 「?」が必要かどうかはわかりません。言語を指定しなかったためです。上記の python 実装により、必要なものが得られるはずです。

于 2013-04-17T20:32:48.090 に答える
0

正規表現を使用する必要がありますか?

選択した言語で標準の文字列解析ツールを使用した場合、ケースはより単純で明確になるようです。

于 2013-04-17T20:28:05.587 に答える