ここから本文です

正規表現で、"\r\n"は見つけずに、"\r"単独、又は、"\n"単独 を見つけるにはどうし...

hat********さん

2012/2/718:47:50

正規表現で、"\r\n"は見つけずに、"\r"単独、又は、"\n"単独 を見つけるにはどうしたらいいでしょうか?

正規表現で、"\r\n"は見つけずに、"\r"単独、又は、"\n"単独 を見つけるにはどうしたらいいでしょうか?
C#に System.Text.RegularExpressions.Regex.IsMatch() にて組み込む前に、サクラエディタで試していますが、ヘルプがよくわからなくて困ってます。

閲覧数:
962
回答数:
2
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

buy********さん

編集あり2012/2/720:02:25

>hato_210さん

いろいろやってみましたが、正規表現だけだと難しいですね。

2つの正規表現マッチ + 論理演算子を使えば簡単です。

"\r\n" に マッチしない && "[\r|\n]" にマッチする

と処理されてはどうでしょうか。

これであれば、"\r\n"にマッチせず \r あるいは \n にマッチすると処理できます。

サンプル作ってみました。

--- gmcs1100_2.csharp
using System;
using System.Text.RegularExpressions;


public class Chiebukuro_gmcs1100_2 {
static public void myMatch(string s) {
Regex r1 = new Regex("\\r\\n");
Regex r2 = new Regex("[\\r|\\n]");
if( ! r1.IsMatch( s ) && r2.IsMatch( s ) )
System.Console.WriteLine(s+" is OK!");
else
System.Console.WriteLine(s+" is XX!");
}
static void Main() {
myMatch("\r\n");
myMatch("\r");
myMatch("\n");
}
}


---

動作確認時アウトプット

is XX!
is OK!

is OK!


上手く処理できてます。


***** 追記1

\r\nにマッチする部分を削除した文字列を作成してから\rや\nを探す方法もあると思います。




よろしくお願い致します。

ベストアンサー以外の回答

1〜1件/1件中

Cの文法は分かりませんけど、正規表現ならば分かるので、回答します。
自分ならこうしますが、他に良い方法があるかもしれません。

(\r\n|.)*(\r|\n)

こんな風にしてはどうでしょうか。
\r\n 若しくは、任意の一文字 が0個以上、\r又は\nの前に続く。

これを応用して、自分の必要な形に変更すれば上手く行くと思います。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる