-2

.行の先頭にドット()が表示されている場合は削除したいので、次に例を示します。

hi,
<new line> .
<new line> How are you.

この行を削除するにはどうすればよいですか?

4

6 に答える 6

3

行の先頭にあるドットを削除します。

resultString = Regex.Replace(subjectString, @"^\.", "", RegexOptions.Multiline);

ドットで始まる行全体を削除します。

resultString = Regex.Replace(subjectString, @"^\..*\r\n", "", RegexOptions.Multiline);

ドットのみが含まれている場合は、行全体を削除します。

resultString = Regex.Replace(subjectString, @"^\.\r\n", "", RegexOptions.Multiline);

ドットで始まり、末尾に空白が含まれている可能性がある場合は、行全体を削除します。

resultString = Regex.Replace(subjectString, @"^\.[^\r\n\S]*\r\n", "", RegexOptions.Multiline);
于 2012-07-23T08:38:21.467 に答える
0
string result = "hi,\n.\nHow are you.".Replace("\n.\n", "\n");
于 2012-07-23T08:34:25.050 に答える
0

組み込みの文字列比較を使用できます-利用可能なものはたくさんあります。

RegExを使用できます。

しかし、それはすべて1つのポイントになります->あなたは何を試しましたか?ドキュメントをお読みください

考えられる短い答え:

// allLines is your List/Array/Enumerable of all lines that need checking
foreach(string line in allLines){
    if(!line.Trim().StartsWith("."){
        // Do whatever you like with the found string.
        line = line.Remove(".",1);
    }
} 
于 2012-07-23T08:34:54.443 に答える
0

あなたの場合、「検出」とはどういう意味ですか?ドットが発生した場合にtrue/falseを返すだけの場合は、検索できます"\n."-改行の後にドットが続きます。あなたはそれのために正規表現さえ必要としません:

bool weHaveDot = myString[0] == "." || (myString.IndexOf("\n.") > -1);
于 2012-07-23T08:35:12.633 に答える
0

どうですか:

MyLine.Substring(MyLine.IndexOf("<new line> ") + 11).StartsWith(".")
于 2012-07-23T08:37:30.233 に答える
0

答えは質問の意味によって異なるのではないかと思います。

私の推測では、いくつかの行があり、ドットのみで構成される行を削除したいと考えています。右?

その場合、解決策は次のようになります。

  • 文字列を文字列配列に分割します。各配列には1行が含まれます
  • ドットだけで構成されるすべての配列要素を削除します
  • 文字列配列を結合し直します。

そして、そのための正規表現は必要ありません。(正規表現の経験を積みたい場合を除いて、その場合は申し訳ありません。)

于 2012-07-23T08:41:46.393 に答える