• 締切済み

英数字の文字ごとにメッセージを変えたい

14ケタの英数字があるとします。 たとえば「AAAAAAAP123123」です。 この P の位置にある文字が、「P」か「D」かでメッセージを変えたいです。 「A」や「123」はそのときどきで変わりますが、14ケタの英数字であることは変わりません。 メッセージ自体はごく簡単なもので、たとえば、「Pですよ!」とか「Dですよ!」でいいのです。 batファイルで作りたいのですがどうすればいいですか? 「文字列を入力してください」ときかれて文字列を入力し、メッセージがでるパターンがいいです。 よろしくお願いします。

みんなの回答

  • pita-gora
  • ベストアンサー率70% (102/145)
回答No.1

こんにちは。 P/Dの位置も変動するのでしょうか? 常に8文字目なのだとしたら、以下のような記述になります。 (14桁かどうか、入力が正しいか等はチェックしていません) echo off set /p ANS=文字列を入力してください(14桁): if "%ANS:‾7,1%"=="P" echo Pですよ! if "%ANS:‾7,1%"=="D" echo Dですよ! P/Dの位置が変動する場合、条件として ・1文字目の英字が複数個続く ・その次の1文字がPかDのいずれか ・残り14桁までは任意の数字 だとすると以下のような記述になります。 (入力が正しいか等はチェックしていません) echo off set /p ANS=文字列を入力してください(14桁): for /F "tokens=1,2 delims=PD" %%a in ('echo %ANS%') do set x=%%a&set y=%%b call set ANS=%%ANS:%x%=%% call set ANS=%%ANS:%y%=%% if "%ANS%"=="P" echo Pですよ! if "%ANS%"=="D" echo Dですよ! 

関連するQ&A

  • 文字列の中間の英数字を削除したい

    ワードのマクロで、 和文字(明朝黒色標準)+英数字(明朝黒色標準)+英数字(明朝赤色太字) のような任意の文字列を選択し、中間位置の黒色明朝の英数字のみを削除し、 和文字(明朝黒色標準)+英数字(明朝赤色太字) のような文字列に加工したいのですが、どうしたら良いでしょうか。 どなたか、お教え下さい。 和文字(明朝黒色標準)+英数字(明朝黒色標準)+英数字(明朝赤色太字)の文字列で、 和文字の一番後ろの文字の位置は myStr = Selection.Range.Text Set RE = New RegExp strPattern = "[0-9A-Za-z'0-9A-za-z'-]+" With RE .Pattern = strPattern .IgnoreCase = True .Global = True .MultiLine = True End With Set Matches = RE.Execute(myStr) index = Matches.Item(Matches.Count - 1).FirstIndex によって、indexで獲得できるようですが、 英数字(明朝黒色標準)を除去するには、 Selection.Range.Textの文字列の中の、英数字(明朝黒色標準)の長さを取得した上で、 和文字(明朝黒色標準)+英数字(明朝黒色標準)+英数字(明朝赤色太字)の文字列から、英数字(明朝黒色標準)を除去する、 ということになると思いますが、マクロが分かりません。 どうしたら良いでしょうか。どなたか、お教え下さい。重ねてお願いいたします。

  • 「○○通りのパターンがある」の計算のしかた

    よくこの組み合わせは全部で1万通りのパターンが存在するというようなことを聞きますが、 あれの方程式などはあるのでしょうか。 以下の例で説明をお願いします。 1. [a,b,c]の3つだけの文字列を作った時のパターン数 2. 英数字のみのパスワード4桁のパターン数 3. [a,b,c,d,e,f,g]の中から4文字をつかった文字列のパターン数。

  • preg_match関数で4-16桁の英数字かどうかをチェックしたい

    こんにちは☆ PHPでログインIDの入力フォームを作成していて、ユーザーの入力した文字が半角英数字のみで4桁以上16桁以内であるかどうかをpreg_match関数を用いてパターンチェックしたいのですが、うまくいきません。 (全角かな等が入っていてもtrueが返ってしまう。) どなたかご存知でしたらご指摘下さいm(_ _)m -------------------現在までの状況------------------------------- $login_id = $_POST["POSTされたユーザ入力"]; $login_id = mb_convert_kana($login_id, "a"); if (!preg_match("/[a-zA-Z0-9]{4,16}/", $login_id)) { echo "エラーメッセージ"; } ----------------------------------------------------------------

    • ベストアンサー
    • PHP
  • オブジェクト指向なJavaプログラムとは?

     Javaで,キーボードから入力した8桁の文字列を出力するというプログラムを作成したい,8桁の文字列に対して,checkを行い文字列が未入力だとエラーが投げられる。  また,02345334,のように1文字目が0だとエラーが投げられ, 文字列が9桁や7桁になってもエラーが投げられるというプログラムを 継承、オーバーロード、オーバーライドを使って作成したい。 (文字列に入力する文字は全角英数字でも半角英数字でも出力されるようにする。 例: 1a2B3C4d )  まず,NyuryokuMainというメインクラスを作り,キーボードから入力した文字を出力するというプログラミング。  次に,NyuryokuCheckクラスでboolean型で文字列が未入力かどうかをif文で判別し,次に与えられた文字列が8桁以内かをboolean型で判別する。までを、NyuryokuCheckクラスで行い、  SubNyuryokuCheckクラスでNyuryokuCheckを継承し,8桁の文字列の1桁目が0かをbooleanで判別する。  というような,プログラムを作りたいのですが,どのようにしたらよいかわかりません。よいサンプルなどがあったら教えてください!

  • ランダムな英数字を発生させてたいのですが

    Perl5をつかっています。 毎回ランダムな英数字の何桁かの文字列を発生させるCGIを作りたいのですが可能なのでしょうか? rand関数をつかうと乱数を発生はできるのはわかるのですが英文字ではないようなので困っています。 どなたかご教授おねがいします。

    • ベストアンサー
    • CGI
  • 英数字と記号の正規表現

    英数字と記号の文字であればtrueを返すような判定を正規表現で行いたいです。 英数字の判定([0-9a-zA-Z])、記号([\\p{Punct}]+)の判定は個別にテストして動作したのですが、二つを組み合わせて書くようにするにはどのようにすればよいのでしょうか? 当然ですが、以下のように書くと文字列の全てがそれぞれ記号なのか、英数字なのかを判定してしまうためfalseを返してしまいます。 String str = "~!@#$%^&*()_+{}|:"<>?`-=[]\;',./1234567890abcdefgxyz"; System.out.println(str.matches("[\\p{Punct}]+") || str.matches("[0-9a-zA-Z]+")); 以上、宜しくお願いします。

    • ベストアンサー
    • Java
  • LINUXで半角の英数字以外の文字列をgrep検索したい

    LINUXで半角の英数字以外の文字列をgrep検索したい たとえば a!3" とか 30%(under_s) とか grepでもなんでもよいですが上記のような半角英数字以外の文字列を検索できますでしょうか。 grep -c で、半角英数字以外の文字列があるかどうか確認したいです。 よろしくお願いします。

  • 特定の文字列の隣のセルの文字色変更

    Excelに関する質問です。 A5~N42のセルに特定の文字列が入力されている場合、 A列、D列、G列、J列、M列、P列に入力されている文字の色を変えたいのですが、 何か良い方法を教えてください。

  • Excelの半角英数字の入力について

    Excelで、あるセル、又は行全体に入力するときに半角、全角の入力にかかわらず、入力したものは必ず半角に変わるようにするにはどうすればいいでしょうか? また、漢字かつ英数字の混合文字列に対して、英数字だけは、全角で入力しても半角に変えてくれるようにするにはどうすればいいでしょうか?

  • 正規表現 英数字を1つ以上含む文字列

    ASP.NET(VB)での入力チェックのために、 半角英数字「0~9」「a~z」「A~Z」と、ハイフン「-」からなる文字列 (ただし、半角英数字「0~9」「a~z」「A~Z」はそれぞれ少なくとも1個ずつ含む) の正規表現での表し方が知りたいです。  How To: ASP.NET への入力を制約するために正規表現を使用する方法  http://www.microsoft.com/japan/msdn/enterprise/pag/securityguidance/paght000001.aspx  (?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,10})$  8から10文字で、最低1文字の数字と1文字の英字を使用し、特殊文字を使用してはいけません。 上記を参考に、 (?!^[0-9]*$)(?!^[a-z]*$)(?!^[A-Z]*$)^([a-zA-Z0-9])$ こんな感じかなぁと試してみたのですが、ダメでした。 そもそも「!」の意味が分かりません。否定でしょうか??