2

私にとって、それは正規表現に関する最も重要な質問であり、他の人にとってもそうかもしれません。

正規表現はほとんど使いません。しかし、少し複雑な正規表現に取り組まなければならないときはいつでも、検索する単語を見つけるのがさらに難しくなります。

そして、正規表現を除いて、プログラミングで検索に固執する可能性のあるものは他に考えられません。そして、あなたの知識/スキルが少なすぎるこれらの領域の問題の多くは、少しの検索で簡単に解決されます. しかし、正規表現の場合、このことはできません

たとえば、有効な式があります

Select * from sale  where Quantity < '10'  and Date <= curdate() and
Date >= date_sub(curdate(), interval 3 month)

ユーザーがこのクエリを変更できるようにしましたが、変更後、ユーザーが関係演算子と関係演算子に続く値を除いて何も変更していないことを確認したいと思います。正規表現は次のようになります

Select .+ from sale  where Quantity [<|>|=|(<=)|(>=)] .+  and Date 
[<|>|=|(<=)|(>=)] .+ and Date [<|>|=|(<=)|(>=)] (string not containing any join)

この特定の質問はすでに解決されています。実際の質問は正規表現に関する一般的なものです。

このような問題の解決策は 2 つしか考えられません

  1. 正規表現の十分な知識/スキル/概念を持っていること
  2. フォーラムで質問してください。

他のすべてのケースでは、非常に典型的な/ユニークな/新しいタイプのテクニックを除いて、通常、チュートリアルなどを読まずに検索からヘルプを見つけます。しかし、正規表現の場合、それらはほとんど一意であるため、検索は確実な解決策とは思えません。それは...ですか?どのように?

チュートリアルを読むことに反対しているわけではありません。私は自分自身で、おそらく他のことよりも正規表現のために多くのことを行っています(コースで十分に読んでいないため)が、まだ問題に直面しています

4

3 に答える 3

1

ループ、関数、リスト、ハッシュ、モジュール、文字列、入力、出力、ファイルなどの基本的な概念を知っているため、プログラミングの問題について簡単に質問できます。基本的な語彙を知っているため、プログラミングに関する質問の仕方を知っています。

しかし、この知識は何もないところから得たわけではありません。ある時点で、基本を学ばなければなりませんでした。当たり前のことだと思っているので、忘れがちです。

正規表現には、学ぶべき新しい概念や新しい語彙がたくさんあります。突然、groups、alternation、anchor、lazy and greedy quantifiers、lookaround、atomic grouping、captures などの新しい単語が登場します...そして、意味のある質問をするために、その新しい語彙を学習することから逃れることはできません。

基本的な概念を理解することはそれほど難しくありません。まともなチュートリアル (http://www.regular-expressions.info) を使用し、お気に入りの言語で正規表現を試し、オンラインの正規表現テスターを使用します...個人的には、日常的に RegexBuddy を使用することで、正規表現について知っていることのほとんどすべてを学びました。 . そしてStackOverflowから。

ここで基本的な正規表現の質問をすることができます。それらは毎日たくさんあります。そして通常、投稿者がわずかな労力も費やしていないことが明らかな場合にのみ、反対票が投じられます。

于 2012-09-22T18:11:07.490 に答える
1

データベース スキーマは一意であり、ヒットしないため、SQL 式を検索することは不可能であると主張する人もいるかもしれません。それでも、それはうまく機能します。

非常に具体的な問題の実際の解決策ではなく、概念とアイデアを探す必要があります。

もちろん、基本を知っている必要があります。探しているものに名前を付けることができない場合、それらを検索することは不可能です。

あなたの例として、ここに実用的な検索があります: https://www.google.co.uk/search?q=regexp+match+either+or最初のヒット: 「正規表現チュートリアル - 垂直バーによる代替」

于 2012-09-22T16:41:15.833 に答える
1

できることは次の 3 つです。

  1. 目の前で、特定のフレーバーの正規表現の正規表現チートシートを開きます。
  2. 一度にすべてを構築しようとするのではなく、ツールを使用して即座にフィードバックを提供し、式を「進化」させます。私はRegexpal cuz を使用しています。これは無料です。
  3. 独自のテスト リグを作成して、さまざまな機能を試すことができます。
于 2012-09-22T16:41:19.747 に答える