これを試してみてください:
var str:String = "I don't recall saying ' pick up the boot ' or ' now is the time ' . But it's possible , so I may have .";
// "foo ' bar ' baz" => "foo 'bar' baz"
var re1:RegExp = /'\s(.*?)\s'/g;
str = str.replace(re1, "'$1'");
// "foo , bar . baz" => "foo, bar. baz"
var re2:RegExp = /\s([.,])/g;
str = str.replace(re2, "$1");
を、この特定の文字列を使用すると、その結果得られます。それは
のような文字列では動作しませんよう、いくつかの調整を必要とする
I don't recall saying 'pick up the boot' or 'now is the time'. But it's possible, so I may have.
は最初の正規表現てもよいです
I didn ' t say ' foo '.
最初の正規表現で使用される特殊記号の
I didn 't say' foo '.
短い説明:
\s
は空白文字(スペース、タブ)のため
.
は、任意の文字
*
ゼロ個以上の繰り返し
?
を意味しています*
は限定的ではないので、可能な限り少ない文字数で一致します。
- をすべて括弧で囲むと、キャプチャグループが作成されます。私たちは、後であなたがthis site上またはAdobeからのドキュメントのthis sectionでの正規表現に関する詳細な情報を見つけることができます
$1
として置換文字列にその内容を参照することができます。
ありがとうございました!最初のre1をどのように英語で書くのですか?それはそうでしょうか?re1は、シングルクォートとそれに続く...を見つけるパターンですか?私が理解するのが最も困っている部分は(。*?)です。置き換えでも、「$ 1」は何をしていますか? – David
私は短い説明を追加しましたが、あなたのコードでregexpを使うつもりならば、それらについて少し読んでみるのがよいでしょう。 –
はい、読んでいますが、あなたの説明はより速くなります。再度、感謝します。 – David