- hoehoe1234
- 6122
- 18
- 0
- 0
#正規表現クイズ (No.11)解答 ^(?=.*(勝ち|勝利))(?!.*(負け|敗北)) ^(?!.*(負け|敗北))(?=.*(勝ち|勝利)) どちらでも構いません。図の解説を読んでください。次は明日(4/14)の朝に出題します。文字列置換の問題になります。 twitter.com/excelvba_diary… pic.twitter.com/8nCkPB8bLu
2021-04-13 18:12:22#正規表現クイズ (No.11) IsMatchRegExp関数を使う問題です。文字列の中に、"勝ち" 又は "勝利" を含み、"負け" 又は "敗北" を含まない場合に一致となるパターンを考えてください。他の方の思考時間のため回答は15:00以降で、引用ツイートで回答してください。 pic.twitter.com/SRp4mRRntu
2021-04-13 05:34:19@furyutei Text="負けるが勝ち" Pattern="(?=.*(勝ち|勝利))(?!.*(負け|敗北))" とした場合、肯定先読み側は 勝ち が勝ち るが勝ち けるが勝ち の文字列にもマッチングし、この位置からでは否定先読みもOKになってしまいますね。 CountRegExp関数でチェックすると、確かに4つのマッチングパターンとなります。 pic.twitter.com/pvcFJ2AwlT
2021-04-13 19:22:05補足です。^を省略するとなぜNGか? 例えば Text="負けるが勝ち" Pattern="(?=.*(勝ち|勝利))(?!.*(負け|敗北))" とした場合、肯定先読み側は 勝ち が勝ち るが勝ち けるが勝ち の4パターンにもマッチングし、この位置からでは否定先読み側もマッチングしてしまいます。
2021-04-13 20:01:59@kyrtnyy @furyutei ですね。$はあってもなくてもかまいません。肯定先読みは一致するものが一つでもあれば、そこで判定されます。無い場合は最後まで読みに行きます。一方、否定先読みは最後まで読んで初めて「無い」と判定できます。つまり、今回のように単に一致/不一致を判定するだけなら$は要りません。
2021-04-13 21:40:51#正規表現クイズ (No.12) ReplaceRegExp関数を使う問題です。箇条番号の位置やスペースの数が不揃いな文を図のように整形する検索パターンと置換文字列を考えてください。箇条番号は半角()で囲み直します。箇条番号と文章の間は半角スペースとします。回答解禁時刻は15:00、回答は引用ツイートで。 pic.twitter.com/BCVnw2yGV5
2021-04-14 05:48:32#正規表現クイズ (No.12) 解答 検索パターン = "^\s*(\d+)\)\s*" 置換文字列 = "($1) " この解答例は、ReplaceRegExp関数を使いますので、1行づつ処理する前提になります。もちろんMultiLine プロパティを有効にして複数行を一括処理してもよいでしょう。どの回答も力作ですね。 twitter.com/excelvba_diary… pic.twitter.com/C24DsZeMFs
2021-04-14 19:14:10#正規表現クイズ (番外編) IsMatchRegExp関数を使う問題です。正規表現だけでセル番地として認識できるかどうか判定するパターンを考えてください。条件:A1形式のみとする。絶対参照、相対参照のどちらにも対応できること。 番外編につき回答解禁時刻は設定しません。明日は通常の問題はお休みです。 pic.twitter.com/K6ptnZx2u5
2021-04-14 20:33:08@kyrtnyy 少し追加してありますが(^^; $A$0 A0 $A$0000000 $A$0000001 $A$1 $A1 A$1 A1 $AB$123 $AB123 AB$123 AB123 $WFF$0999999 $XFD$1048576 $XFE$1048576 $XFD$1048577 XFD1048576 XFE1048576 XFD1048577 $AA$AA $123$123 A2
2021-04-14 21:05:54#正規表現クイズ (番外編) テスト用の文字列です。少し追加してあります。 $A$0 A0 $A$0000000 $A$0000001 $A$1 $A1 A$1 A1 $AB$123 $AB123 AB$123 AB123 $WFF$0999999 $XFD$1048576 $XFE$1048576 $XFD$1048577 XFD1048576 XFE1048576 XFD1048577 $AA$AA $123$123 A2 twitter.com/excelvba_diary…
2021-04-14 21:08:32#正規表現クイズ (番外編) 解答 ^(?!.{256})\$?(?:[A-Wa-w]?[A-Za-z]{1,2}|[Xx]([A-Ea-e][A-Za-z]|[Ff][A-Da-d]))\$?0*(?:[1-9]\d{0,5}|10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6])$ 255文字を超えた場合は不一致としています。その他は回答者の皆さんの考え方と同じです。 twitter.com/excelvba_diary… pic.twitter.com/R91HorpJRh
2021-04-15 14:58:55#正規表現クイズ (No.13) IsMatchRegExp関数を使う問題です。図に示すとおりの指定された文字の種類と文字数のパスワードになっているかチェックするパターンを考えてください。他の方の思考時間のため回答解禁時刻は15:00とします。回答は引用ツイートでお願いします。 pic.twitter.com/MrPnXe8R6S
2021-04-16 06:11:45サンプルテキストです。判定結果は図を。 Excel-1 Excel#12 Office.2019 excelvba2021 ExcelVBA2021 Excel-VBA-2021 Office/Home&Business2019 Microsoft.Office.2019/365 RegExp.Quiz-No.13 正規表現Quiz-No.13 twitter.com/excelvba_diary… pic.twitter.com/yzn6q7hFoQ
2021-04-16 06:41:59@kyrtnyy [_->] は "_" から ">" までと解釈されますが、文字コード(UNICODE)が昇順になっていません。_ はu005Fで、>はu003Eです。[a-z]を[z-a]とするのと同じで、昇順になっていないとエラーになります。私の環境では実行エラーにはならずセルに「#VALUE!」と表示されますが..;;
2021-04-16 16:50:46#正規表現クイズ (No.13) 解答 ^(?=[\u0021-\u007E]{8,24}$)(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[\u0021-\u002F\u003A-\u0040\u005B-\u0060\u007B-\u007E]) 肯定先読みを組み合わせる問題です。^(?=~{8,24}$)で8文字以上24文字以下に限定します。記号はUNICODEで表現しました。詳細は図(2例)を。 twitter.com/excelvba_diary… pic.twitter.com/dDGS8kAXFa
2021-04-16 17:27:00#正規表現クイズ (No.14) ^(\u0072\u006F).{3}\s\1(..)\s.{3}\2$ ^(?=.{6}$)\u305C(.).*\1 久しぶりにパターンからテキストを当てる問題です。 上は英語、下はその邦訳(ひらがな)です。回答時刻制限なしの週末問題。ヒント:今の日本、問題が多過ぎて〇〇〇〇です。
2021-04-16 17:57:06#正規表現クイズ (No.14) 解答 rocky road ahead ぜんとたなん "rocky road ahead"は日本語で前途多難。アメリカの報道でよく使われていますね。次回は月曜(4/19)の朝です。 twitter.com/excelvba_diary… pic.twitter.com/BsSXC8wKqr
2021-04-17 15:11:11#正規表現クイズ (No.15) 半角のカンマで区切られる単語が並んでいます。 富士山,槍ヶ岳,奥穂高岳,間ノ岳,北岳,悪沢岳,赤石岳 この中の2番目の単語と5番目の単語を入れ替える検索パターンと置換文字列を考えてください。 他の方の思考時間のため回答は15:00以降。回答は引用ツイートで。 pic.twitter.com/cSnfnTcEKY
2021-04-19 05:44:06正規表現のクイズは、「たった一行」で済むという性質から、どうしても中級レベルの問題が中心になってしまう。初級レベルは独学でも可能でクイズになりにくい。中級にステップアップするには「お決まりのパターン」を覚えそれを応用する技術が必要になる。実はそこが難しいかもしれない。
2021-04-19 17:43:17#正規表現クイズ (No.15)解答 ^(.*?)(,.*?)((?:,.*?){2})(,.*?)(,.*) と $1$4$3$2$5 または ^([^,]*)(,[^,]*)((?:,[^,]*){2})(,[^,]*)(,.*) と $1$4$3$2$5 詳しくは図を見てください。カンマで区切られた単語を入れ替える、お決まりのパターンです。次は明日(4/20)の朝です。この問題の応用です。 twitter.com/excelvba_diary… pic.twitter.com/p5mWKvlhbn
2021-04-19 18:49:37#正規表現クイズ (No.16) No.15の続き。半角のカンマで区切られた単語が並んでいます。このうち、2番目の単語と5番目の単語を入れ替える検索パターンと置換文字列を考えてください。5番目の単語が無い場合は置換せずそのままとします。他の方の思考時間のため回答は15:00以降、引用ツイートで。 pic.twitter.com/Cn5OQx3Dwj
2021-04-20 05:43:17サンプルテキストはこちら。 富士山,槍ヶ岳,奥穂高岳,間ノ岳,北岳,悪沢岳,赤石岳 富士山,槍ヶ岳,奥穂高岳,間ノ岳,北岳,悪沢岳 富士山,槍ヶ岳,奥穂高岳,間ノ岳,北岳 富士山,槍ヶ岳,奥穂高岳,間ノ岳
2021-04-20 05:43:52#正規表現クイズ (No.16) 解答 ^(.*?)(,.*?)((?:,.*?){2})(,.*?)(,.*|$) と $1$4$3$2$5 または ^([^,]*)(,[^,]*)((?:,[^,]*){2})(,[^,]*)(,.*|$) と $1$4$3$2$5 No.15との違いは最後の (,.*|$) だけです。これで5番目の後ろは末尾でもマッチング可能となります。次は明日(4/21)の朝です。 twitter.com/excelvba_diary… pic.twitter.com/DzFTBDjbSb
2021-04-20 18:26:20#正規表現クイズ (No.17) 半角のカンマで区切られた単語が並んでいます。このうち、最初と最後の単語を入れ替える検索パターンと置換文字列を考えてください。1行ずつ処理します。他の方の思考時間のため回答は15:00以降でお願いします。回答は引用ツイートで。 pic.twitter.com/kMelJsPl8o
2021-04-21 05:57:51#正規表現クイズ (No.17) サンプルテキスト 1行ずつ処理します。 槍ヶ岳,北岳,奥穂高岳,間ノ岳,富士山 奥穂高岳,北岳,富士山 北岳,富士山 槍ヶ岳,,,,富士山 槍ヶ岳,,,, ,,,,富士山 北岳, ,富士山 twitter.com/excelvba_diary…
2021-04-21 06:03:44#正規表現クイズ (No.17) 解答 (.*?)((?:,.*)*,)(.*) と $3$2$1 または ([^,]*)(.*,)(.*) と $3$2$1 最初と最後の入れ替えは比較的短いパターンでできますね。詳しくは図を見てください。 次回は明日(4/22)の朝です。住所を扱う問題を予定しています。 twitter.com/excelvba_diary… pic.twitter.com/4M74pLSjGh
2021-04-21 18:08:04