0
text.scan(/\"[\d\w\s\+\-\*\/]*\"/)

文字、数字、スペース、プラス、マイナス、スター、またはスラッシュを含む可能性のある引用符内の何かを探しているだけです。すべてがコンソールでうまく機能します。次のそれぞれがブラウザで機能します。

"abc"
"123"
"x-1" or "x - 1"
"x/1" or "x / 1"

ただし、ブラウザではプラス記号とスターは失敗します (同じ正規表現を使用してコンソールで正常に動作するにもかかわらず)。誰にもアイデアはありますか?

編集 #1: スキャンの結果にフォーマットを追加するために、簡単な gsub を実行しています。引用符にプラスまたは星が含まれている場合、それらはスキャンによって検出されません。コンソールに貼り付けた同じコードとテキストは問題なく機能します。

編集#2:余分な詳細なしでこの質問を組み立てるより良い方法を見つけ出し、答えを得ました. 「結果に正規表現の特殊文字が含まれている場合、スキャンの各結果に対して gsub を実行できないのはなぜですか?

4

2 に答える 2

2

この問題は、/#{whatever}/特殊文字をエスケープしない正規表現文字列の挿入 ( ) に関連していることが判明しました。手動でエスケープするとクリアされます ( /#{Regexp.escape(whatever)}/)。完全な例/説明については、この質問を参照してください。

于 2012-08-23T22:33:52.547 に答える
0

「ブラウザで作業する」とはどういう意味かわかりませんが、URLを解析しようとしていると想定しています。URLでは、+&記号をそれぞれ&*に変換できます。%2B%2A

この正規表現を試してください:

/"[(\d\w\s\+\-\*\/|%2B|%2A)]+"/

...または解析する前にURLをデコードします。

于 2012-08-10T21:58:23.640 に答える