visual studio 2005 C#で
指定文字数による文字列分割をしたいのですが
何とか正規表現で一発で書けないかと考えております。
指定文字数による文字列分割は、ちょっと言い方が分からないので、下の例をみていただければ、と思います。
例えば指定文字数が2文字の場合
"あいうえお"を以下のような配列で取得したいです。
[0]"あい"
[1]"いう"
[2]"うえ"
[3]"えお"
例えば指定文字数が3文字の場合
[0]"あいう"
[1]"いうえ"
[2]"うえお"
これを
[0]"あい"
[1]"うえ"
というような分割はできるのですが、上記のような重複した感じでの取得ができません。
MatchCollection mc = Regex.Matches("あいうえお", "..");
ちょっと言い方が下手で分かりにくいかもしれませんが、よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
.NETの現行の正規表現の仕様では多分できません。
というのも、たとえば(先頭から)2文字マッチさせると注目点は
マッチしただけ移動しますが、要求されている動作では注目点は1文字しか
移動してはいけないことになるからです。
Perl6で導入が予定されている :ov (:overlap) 修飾子があれば
お望みの動作ができるかもしれません。
参考URL:http://svn.perl.org/perl6/doc/trunk/design/syn/S …
No.2
- 回答日時:
これってむしろsubstringでやった方がいいんじゃないかと思ったりw
ありがとうございます。
今組んでいるプログラムの方ではsubstringで実装したいと思います。
ただ、正規表現で表現できるかどうかは気になりますので、引き続き掲示とさせていただきます。
No.1
- 回答日時:
下記のように行えば言っているとおりの実装が可能ですが?
正規表現を使ってという方法は思いつきません。
string a="あいうえお"; //対象の文字列
int b=2; //指定文字数
string[] c= new string[a.Length-(b-1)]; //格納用配列
for(int i= 0;i<a.Length-(b-1) ;i++)
{
c[i] = a.Substring(i,b);
}
ありがとうございます。
仰るとおりfor文等でやった方がよさそうですね。
「これって正規表現で一発でいけるのかな?」と思い立って、質問させていただいた次第です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
%dなどの違い
-
TCL言語で文字列検索方法を教え...
-
プログラムによく出てくるst...
-
16進数を2文字ずつ配列に格納し...
-
曜日を格納する配列の大きさ
-
nullと""、\\0とEOFの違いにつ...
-
VB6.0でのバイナリデータの扱い...
-
文字列の分割
-
VBA-DLLの引数受け渡しについて
-
C#でstringをポインタとして渡す
-
WSH(VBS)でJSONの文字列を読み...
-
char型配列の最大要素数
-
C++で入力した文字列から数字を...
-
シリアル通信で0x00を送信した...
-
バイナリファイル中の日本語文...
-
[C++]WCHARの1文字目しか表示で...
-
C言語 配列の長さの上限
-
関数から配列を返すには?
-
セグメントエラー
-
VBAのプログラムで、DIAG = 1# ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムによく出てくるst...
-
nullと""、\\0とEOFの違いにつ...
-
C++で入力した文字列から数字を...
-
WSH(VBS)でJSONの文字列を読み...
-
C#でstringをポインタとして渡す
-
TCL言語で文字列検索方法を教え...
-
%dなどの違い
-
VB6.0でのバイナリデータの扱い...
-
16進数を2文字ずつ配列に格納し...
-
[C++]WCHARの1文字目しか表示で...
-
char型配列の最大要素数
-
_tcscpy_s(wcscpy_s)の第二引数...
-
シリアル通信で0x00を送信した...
-
Shift_JIS(16進)を文字に変換す...
-
sprintf関数について教えて下さ...
-
バイナリファイル中の日本語文...
-
構造体→文字列→構造体 をする方法
-
引用符と二重引用符
-
C言語の勉強しています。すみま...
-
文字列にある特定文字の数
おすすめ情報