• ベストアンサー

Powershell 先頭文字置換

Powershellについて質問があります。 ■やりたい事 先頭文字を抽出して大文字に置換したい。 例:hogehoge → Hogehoge ■考えている方法 $i = hogehoge $a = $i.substring(0,1) $b = $i.substring(0,1).ToUpper() $c = $i.Replace($a,$b) この場合”HogeHoge”となるような気がしますが、先頭の"h"のみ大文字に変換したいです。 どのような書き方が良いかご教授ください。 宜しくお願いします。 ■環境 PS C:> $PSVersionTable.PSVersion Major Minor Build Revision ----- ----- ----- -------- 2 0 -1 -1

質問者が選んだベストアンサー

  • ベストアンサー
  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.1

Substringを使うなら $i = "hogehoge" $a = $i.Substring(0,1).ToUpper() + $i.Substring(1) 正規表現でもできないかやってみた。 $b = [Regex]::Replace($i, '^.', { $args[0].Value.ToUpper() } ) これでできるけど、もっと簡潔に書けないかなあ・・・。

rairairaii
質問者

お礼

+ $i.Substring(1)ですね!頭回ってませんでした。 $b=・・・十分綺麗です、。 ありがとうございました。

関連するQ&A

  • 任意の文字列で囲まれていない任意の文字列を置換するには

    任意の文字列で囲まれていない任意の文字列を置換したいです。 たとえば、『 [[ 』と『 ]] 』で囲まれていない『http://hogehoge/』を『<a href="http://hogehoge/">http://hogehoge/</a>』に置き換えるにはどうすればいいのでしょうか。 具体的には下記の【置換前】のテキストを【置換後】のような感じにしたいです。 【置換前】 http://hogehoge/ [[http://hogehoge/]] http://hogehoge/ http://hogehoge/ [[http://hogehoge/]] 【置換後】 <a href="http://hogehoge/">http://hogehoge/</a> [[http://hogehoge/]] <a href="http://hogehoge/">http://hogehoge/</a> <a href="http://hogehoge/">http://hogehoge/</a> [[http://hogehoge/]] preg_replaceかereg_replaceのどちらかで例を挙げてもらえるとありがたいです。ご教示お願いします。

    • ベストアンサー
    • PHP
  • PowerShellでの文字列置換ができない

    PowerShellで「\」を含む文字列が変換できません。たぶん正規表現とかで問題があると思うのですが・・・ あとテキストファイル内の文字列置換で指定された文字列がある行があった場合、その行を削除するといったことは出来るのでしょうか? 詳しい方いらっしゃいましたらよろしくお願いいたします。 <テキスト> BBBB AAAA NNNN AAAAあああA NNNN AAAA <検索文字列> あああ ※行内に「あああ」をみつけたらその行を丸ごと削除したい・・・

  • データの先頭文字の置換

    お世話になります。 AテーブルにBというフィールドがあります。 (Bはvarchar型で、先頭1文字は必ず大文字) このBすべてのデータの先頭1文字目を「○」という 文字に置き換えて更新するためのSQL文を教えていただけますでしょうか。 よろしくお願いいたします。

  • Access リストから文字の置換(Replace)  

    Accessで特定の文字を置き換えたいです。 ただ、置換するだけなら、Replace([商品名],"ⅰ","1")でいいような気がしますが、 置換したい文字が複数あり 今後も増えていくのでテーブルでリストを作成しました。 元の文字 置換文字 ⅰ     1 ⅱ     2 I     A II     B 元の文字を、置換文字に置き換えたいです。 また、商品名は、 I たばこ II 文房具 になっているものや、 商品券ⅰ、ビール券ⅱ と言うのがあるので、置換文字の入る場所はバラバラです。 質問がわかりにくくてすみません。 どうぞよろしくお願いします。

  • Excelで置換した文字に色をつけたい

    よろしくお願いします Excelで、「対象シート」のB列を参照して、 「置換リスト」シートの一覧のC列の文字列をE列の文字列に置換するようにしています。 「対象シート」のA列には置換前のデータも入っているので、 「対象シート」のA列、B列それぞれの置換前、置換後の文字列に色をつけたいと思っています。 どの文字がどの文字に置換されたかを比較するためです。 置換後のB列のみ下記式で色をつけられたのですが、 該当文字が含まれる、セル内全部の文字の色が変わってしまいました。 該当文字だけの色を変えるにはどうすればよいでしょうか。 また、「置換リスト」シートのC列にある場は「対象シート」のA列の該当文字のみを赤くする方法も教えていただけないでしょうか。 Sub list置換_Click() Dim list_sheet As Worksheet Dim chg_sheet As Worksheet 'こっちは置換する元の文字と置換文字のリスト Set list_sheet = Worksheets("置換リスト") 'こっちは一括置換したい対象のシート Set chg_sheet = Worksheets("対象シート") cnt = list_sheet.Range("c4").CurrentRegion.Rows.Count For i = 4 To cnt srcword = list_sheet.Cells(i, "C").Value repword = list_sheet.Cells(i, "E").Value With Application.ReplaceFormat.Font .Subscript = False .Color = 255 .TintAndShade = 0 End With Columns("B:B").Replace What:=srcword, Replacement:=repword, LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=True Next i End Sub よろしくお願いいたします。

  • PowerShellの replace演算子で

    PowerShellの replace演算子で、キャプチャーしたものと、変数をくっ付けた時、うまく表示できません。これはどうしたらよいのでしょう。 例 21AA-N1-M01.txt 21AB-N2-M02.txt などのファイルがあるとして、先頭から2文字と1番目のハイフンの隣の文字とNの隣の数字に1を加えたものと2番目のハイフン以降をくっ付ける。 21AA-N1-M01.txt → AAN2M01.txt dir *.txt | % {$a = [regex]::Matches($_.Name,'\d+') ; $b = 1 + $a.Value[1] ; $_.Name -replace '..(..)-N(\d)-(.*)',"`$1$b`$3"} $12M01.txt となってしまいます。 "`$1 $b`$3" という風に $1 と $b の間にスペースを入れるか、何か文字を入れると正常な表示にはなりますが、間に余計なものは入れたくないです。 $1 と $b の間に何かエスケープ文字とか入れるのでしょうか?

  • 全て英語大文字の文章で先頭だけを大文字に

    お世話になります。 EXCELで全て英語大文字の文章で先頭だけを大文字、先頭以外を小文字に変換する方法を教えて下さい。 例)ABCDE/FGHIJKLM/NOPQ → Abcde/Fghijklm/Nopq このように/あるいはスペースなど、文字列間には何らかの区切りが有るものとし、それも選択出来るのが良いです。 このような文字列が何千行もあるので、セルに関数などを入れて、行数分ドラッグしてコピーするだけとか、セルで済むのが良いですが、無理ならマクロでも構いません。 セルでの関数などが複数セルに分かれても結構です。 例)A1~:該当文章、B1~:該当文章A1の置換1段階、C1~:該当文章A1の置換1段階、D1:置換完了文章 以上、宜しくお願い致します。  

  • 文字の置換のソフトを探しています。

     テキストエディター上のことです。 ABCD"a-a" , EFGH="b-b",, ABCD"c-c" , EFGH="d-d",, ABCD"e-e" , EFGH="f-f ",,        ・        ・        ・ という感じで文字が並んでいるときに ABCD"a-a" , EFGH="a-a",, ABCD"c-c" , EFGH="c-c",, ABCD"e-e" , EFGH="e-e",,        ・        ・        ・  のように文字を置換したいのですが、置換する量が多いので、   自動で置換してくれるソフトはないでしょうか?   自分の勝手なイメージですが、   ABCD"から",までの文字を読み取って   EFGH="から",,までに文字を入れてくれるソフトような   ソフトがあればと思います。   もしそのようなソフトをご存知でしたら、教えてください。   よろしくお願いします。

  • powershellでcsvの順次読みこみ

    powershellでcsvの順次読みこみ powershellで下記のような事はできますか? <in_file.csv> a,1,A b,2,B c,3,C これを読み込み <out_file.csv> =1=《A》【a】 =2=《B》【b】 =3=《C》【c】 のように個別の項目を編集して出力

  • 置換した文字色の変更

    シートが2枚あって、sheet(1)の内容を変更するとsheet(2)の内容を検索して置換するマクロを作っています。 sheet(1)で変更された文字を検出して(検出は文字色で判断しています。)sheet(2)にある文字を置換した後。文字色を変更しようとしています。 Sheet(2)の文字は例えばこのように並んでいます。 各文字はsheet(1)のA,B列の内容を合せたものやユーザーが任意に入れた文字を含みます。 A1 上側 右側 A2 下側 左側 A3 両側 A1:A3を選択して、A1の「上側」を「上面」に置換した後、文字色変更したいのです。 ユーザーの入力値が含まれるため、書式や文字列のコピペは出来ません。 なお、文字数は一定では有りません。また、この範囲の検索が終了すると次ぎの範囲を選択し同様の処理を行っています。 現在使っているのはマクロの記録を行ったものを使っています。 a="上側" b = "上面" Selection.Find(What:=a・・・・・・) ActiveCell.Replace What:=a, Replacement:=b, LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False この中でReplaceFormatで書式設定を行っているのは判るのですが、ここをどの様にするば希望の文字色(例えば赤)にする事が出来るのでしょうか? また、その方法だとA1セル全ての書式が変わってしまいます。欲を言えば置換後の”上面”だけを変更したいのですがそれは可能でしょうか。 宜しくお願い致します。

専門家に質問してみよう