質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

最適化

最適化とはメソッドやデザインの最適な処理方法を選択することです。パフォーマンスの向上を目指す為に行われます。プログラミングにおける最適化は、アルゴリズムのスピードアップや、要求されるリソースを減らすことなどを指します。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Q&A

解決済

1回答

6602閲覧

[C#]先頭または末尾一致の正規表現がまとめられない。

makiikeda1216

総合スコア128

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

最適化

最適化とはメソッドやデザインの最適な処理方法を選択することです。パフォーマンスの向上を目指す為に行われます。プログラミングにおける最適化は、アルゴリズムのスピードアップや、要求されるリソースを減らすことなどを指します。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

0グッド

1クリップ

投稿2015/10/19 03:03

編集2015/10/19 04:33

ある文字列strの文字列から先頭と末尾のみ検索し、どちらかに指定の文字列のどれかが一致していれば、その文字列を空に置換する処理を書いているのですがうまくひとつの正規表現でまとめることができません。どなたかうまい方法が分かる人がいましたらご教授ください。

string str = "word1aaaaaaa"; //置換される aaaaaa string str = "aaaaaaaword1"; //置換される aaaaaa string str = "aaaword1aaa";//置換されない aaaword1aaa //これだとうまくいくが2回置換が必要なので1つにまとめたい //(pattern1とpattern2をまとめたい) string pattern1 = "^(word1|word2|word3)"; string res1 = Regex.Replace(str,pattern1,""); string pattern2 = "(word1|word2|word3)$"; string res2 = Regex.Replace(res1,pattern2,""); Console.WriteLine(res2); 追記 "aaaaaaHOGEHOGEaaaaaa" =>"aaaaaaHOGEHOGEaaaaaa" "aaaaaaword1word2aaaaaa" => "aaaaaaword1word2aaaaaa" "word1aaaaaaword2" => "aaaaaa" "word1word1word1word1" => "word1word1" "word1word1" => "" となるような結果が望ましいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuba

2015/10/19 03:10

aaaaaaHOGEHOGEaaaaaa はどのように変換されることを意図していますか?
makiikeda1216

2015/10/19 04:12

上記コードだと "aaaaaaHOGEHOGEaaaaaa"は "aaaaaaHOGEHOGEaaaaaa"とそのまま出力されるようにしたいと思っています。 "aaaaaaword1word2aaaaaa"の場合も "aaaaaaword1word2aaaaaa"となるのが正常です。 "word1aaaaaaword2"の場合 "aaaaaa" となるのが好ましいです。
guest

回答1

0

ベストアンサー

csharp

1Regex.Replace(str, "(\\A(word1|wod2|word3)|(word1|wod2|word3)\\Z)", "");

こんな感じですかね。

投稿2015/10/19 05:28

yuba

総合スコア5568

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

makiikeda1216

2015/10/19 05:41

yubaさん ありがとうございます!()でくくって|でやればいけたんですね! ()であまりこのようなサンプルがなかったのでまったく試していませんでしたOTL
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問