![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_06.png?e8efa67)
初めての質問です。
質問用にプログラムを次の通りに作りました。実行すると OK と表示しますが、これを、文章に応じて表示させたいのです。本例の場合は、曇り20度、湿度60% です。
つまり、正規表現でマッチした文字を変数に代入して、その変数を用いて、msgbox出力したいのですが、どの様にコード(マッチ文字の変数化)を記述すれば良いのでしょうか?
本例でいえば、曇りを変数xに、20を変数yに、60を変数zに取り込めるようにしたいのです。
質問用なので、プログラムの意味はこだわらないでください。
本番用では、"本日は曇り20度ですが、湿度60%でした。"は、関数の引数で可変の文章です。
質問が下手で済みません。よろしくお願いいたします。
【sample.vbsの内容】
if blnCheck("本日は曇り20度ですが、湿度60%でした。") then
msgbox "OK" '曇り20度、湿度60% と表示させたい
else
msgbox "NG"
end if
Function blnCheck(strLen)
Dim objRE
Set objRE = new RegExp
objRE.IgnoreCase = True
objRE.pattern = "^本.*(晴)|(曇り)|(雨)\d\d.*湿度\d\d.*"
blnCheck = objRE.Test(strLen)
Set objRE = Nothing
End Function
No.1ベストアンサー
- 回答日時:
適切な正規表現を指定して、Submatchesを使ってください。
Dim ans
ans = check("本日は曇り20度ですが、湿度60%でした。")
if ans<>"" then
msgbox ans
else
msgbox "NG"
end if
Function check(target)
Dim re, match
Set re = new RegExp
re.IgnoreCase = True
re.pattern = "^本.*(晴|曇り|雨)(\d\d).*湿度(\d\d).*"
if re.Test(target) then
set match = re.Execute(target)(0)
check = match.SubMatches(0) & match.SubMatches(1) & "度、湿度" & match.SubMatches(2) & "%"
else
check = ""
end if
End Function
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/02/10 11:41
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- 宇宙科学・天文学・天気 中2 理科 天気 ある1日の湿度と気温の変化のグラフを見て、グラフは ア、1日中晴れ イ、1日中曇り 2 2023/03/04 10:25
- PHP PHP MySql ページング 2 2022/09/20 06:38
- その他(パソコン・スマホ・電化製品) 2線式湿度センサーの型式が分かりません。 写真の右側の長い湿度センサーです。 温湿度計の湿度の表示が 3 2022/09/01 14:47
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/03/04 09:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
preg_matchでエラーが出ます。
-
JBScriptの正規表現のマッチ文...
-
Excelで数字のみを2倍3倍にする...
-
VBAを使ってHTMLソースから特定...
-
電話番号のチェック ハイフン...
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
メッセージボックスで1025文字...
-
文字の入力で横バー上段、中断...
-
カンマの含まれる文字列の数値...
-
エスケープ文字の復帰(¥r)と...
-
COBOLの改行
-
全角括弧と全角読点の間隔を狭...
-
入力禁止文字の設定方法につい...
-
文字化け変換方法
-
C++でのCRLFについて
-
ラベル(スタティックテキスト)...
-
C++で空Enterの入力を判...
-
C言語で改行コードを知る
-
phpの正規表現でstyle="●●"を削...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
、"(ダブルクォーテーション)...
-
VBAを使ってHTMLソースから特定...
-
PHPで変数から1行目だけを取得...
-
Excelで数字のみを2倍3倍にする...
-
preg_matchでエラーが出ます。
-
正規表現でシングルクォーテー...
-
URLを抽出する正規表現
-
正規表現パターンの記入方法に...
-
PHPで<a>タグ内からURLと文字を...
-
PHP 複数行の正規表現
-
PHPの正規表現で住所を分けるに...
-
電話番号のチェック ハイフン...
-
ereg_match関数について
-
正規表現で「0」のみ抽出
-
PHPメールフォーム URLと半角...
-
preg_matchで Warning: Undefin...
-
phpでメールアドレス入力の入力...
-
正規表現で特定のHTMLタグのク...
-
preg_matchで指定ファイルのタ...
-
変数に指定文字列が含まれると...
おすすめ情報