4

次の正規表現が必要です

  1. 開始行の最初の単語の最初のアルファベットが小文字の場合に一致します。
  2. 上のアルファベットを含む単語から始まり、大文字で始まる単語が出現するまで空の文字列に置き換えます

これは私が試したものです:

string result = Regex.Replace(input,@"^[a-z]\s?[a-z0-9]\s?[^A-Z]","");

これが起こるべきことです:

入力例 = 「!jgf 地域の。国民の富」

必要な出力 ="国家の富"

改善/修正するにはどうすればよいですか?

4

3 に答える 3

4

あなたはちょうど以下のようにすることができます:

string result = Regex.Replace(input,@"^[^A-Z]*","");
于 2012-10-12T08:04:58.713 に答える
1

このパターンで十分でしょう。

^[^A-Z]+

大文字ではないすべての文字を置き換えます

ところで、C# で RegEx を使用しない方がはるかに高速な方法があります。

int index=str.indexOfAny(new char[] { 'A', 'B', ..., 'Z'})
if(index!=-1){
    str = str.Substring(index);
}
于 2012-10-12T08:05:29.693 に答える
1
" ([A-Z]+.*)"

グループを使用してください。Gruops[1] はあなたが望むものです

于 2012-10-12T08:07:25.863 に答える