1

まず最初に、正規表現文字列を作成するための優れたツールやリファレンスは何かを尋ねることから始めますか? 普段はネットで検索していますが、もう少し勉強したいと思います。

元の質問に戻ります。完全な文字列を検索する正規表現、または文字列を含む行を検索する正規表現は何ですか。文字列は次のとおりです。

** Start of
4

4 に答える 4

6

探している正規表現は次のとおりです。\*\* Start of.*

C# には独自のエスケープ文字があるため、これを のような逐語的な文字列に入れることができます@"\*\* Start of.*"

正規表現を作成、学習、理解するのに役立つ最適なツールはRegexBuddyです。式の意味を確認したり、直感的なグラフィカル UI でテストしたりするのに役立ちます。 式の意味を確認し、直感的なグラフィカル UI でテストするのに役立ちます

正規表現に関する (さまざまな言語にわたる) 情報の最も完全なリソースは、http://www.regular-expressions.info/です。特定の正規表現の実装について学びたい場合は、実装固有のドキュメント/仕様を読んだほうがよいかもしれません。.NET については、MSDN の Regex ドキュメントから始めることをお勧めします。また、 http://derekslager.com/blog/posts/2007/09/a-better で入手できる無料のツールを使用して、オンラインで .NET 正規表現をすばやくテストすることもできます。 -dotnet-regular-expression-tester.ashx

IndexOfまた、このような単純なパターンにはorStartsWithメソッドを使用する方がおそらくより良い解決策であるという @ziesemer に同意することにも注意してください。

于 2012-09-08T04:46:33.847 に答える
2

仕事に間違ったツールを使用していると思います。正規表現は、パターンを見つけるのに最適です。単純な検索のみを目的としているようです。これには適切な API (例: IndexOf) を使用してください。

それ以外の場合は、正規表現の特殊文字であるアスタリスクをエスケープする必要があります。これは、「0 個以上の一致」を意味します。

\*\* Start of
于 2012-09-08T04:45:31.593 に答える
0

正規表現を学習するには、 www.regular-expressions.infoで正規表現の基本構文リファレンスを確認し、さらに「穏やかな紹介:基本」を確認してください。

そして、あなたがaからzまでの文字だけが欲しいかどうかを見つけるための文字列に関して、私はあなたが次のように書くべきだと思います

^[a-zA-Z]$

これには小さく大文字のaからz文字が必要です。

アップデート

^\*\* Start of(.*?)$

分割の詳細

  • \*、アスタリスクを考慮に入れる
  • Start of、この文字列を正確に比較します
  • (.*?)、その一行で何でも取る

    ^\*\* Start of(.*?)(([\n]*(.*?)){19})*$

分割の詳細

  • \*、アスタリスクを考慮に入れる
  • Start of、この文字列を正確に比較します
  • (.*?)(([\n]*(.*?)){19})*、19行までに制限する以外は何でも取る
于 2012-09-08T04:51:37.517 に答える
0

非常に有益ですが、特定の問題に対する正しい正規表現を提供する回答はありません。ここにあります:

string regexPattern = @"^.*?\*{2} Start of.*?$";

multiline一致を検索するときは、オプションを指定する必要があることに注意してください。

結果はこちらでご覧いただけます

そして、ここにパターンの説明があります:

^.*?\*{2} Start of.*?$

Options: ^ and $ match at line breaks

Assert position at the beginning of a line (at beginning of the string or after a line break character) «^»
Match any single character that is not a line break character «.*?»
    Between zero and unlimited times, as few times as possible, expanding as needed (lazy) «*?»
Match the character “*” literally «\*{2}»
    Exactly 2 times «{2}»
Match the characters “ Start of” literally « Start of»
Match any single character that is not a line break character «.*?»
    Between zero and unlimited times, as few times as possible, expanding as needed (lazy) «*?»
Assert position at the end of a line (at the end of the string or before a line break character) «$»
于 2012-09-08T08:30:35.373 に答える