• ベストアンサー

正規表現、文末のスペース削除

初心者です。 4つ知りたいことがあります。 行頭のスペースまたはタブを削除する方法 行末のスペースまたはタブを削除する方法 行の最後にカンマを付ける 特定の文字後にカンマを付ける お忙しい中恐縮ですが、よろしくお願いします。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>行頭のスペースまたはタブを削除する方法 $pattern="/^\s+/m"; $replacement=""; $str=preg_replacement($pattern,$replacement,$str); >行末のスペースまたはタブを削除する方法 $pattern="/\s+$/m"; $replacement=""; $str=preg_replacement($pattern,$replacement,$str); >行の最後にカンマを付ける $pattern="/$/m"; $replacement=","; $str=preg_replacement($pattern,$replacement,$str); >特定の文字後にカンマを付ける $pattern="/特定の文字/m"; $replacement="$,"; $str=preg_replacement($pattern,$replacement,$str); ただし特定の文字は所定のエスケープ処理が必要になるかもしれません。

ubakew
質問者

お礼

疑問が解決できスッキリしました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Wordです 文末にスペース

    > よろしくお願いいたします > 1行に20文字入力できる状態だとします > 25文字入力しました > 1行目20文字-改行-2行目5文字になります(当然です) > では、1行目15文字入力しました > そこからスペースを10文字入力しました > そのまま1行目に行末を無視して25文字入力できてしまいました > スペースをそんな使い方をする事は無いのですが少し気になりました > 334文字まで入力できるようです > なんでなんでしょうか?

  • 秀丸エディタを使って削除

    秀丸エディタを使って 全行にわたって行頭1文字目から10文字目まで削除 また行末から3文字全行にわたって削除をするにはどのようにすればいいのでしょうか。

  • OCRで読み取った英文を正規表現を使って整形したい

    英文をOCRで読み取ったデータがあります。 ワードなどに入れるには、末尾の余分な改行が邪魔で削除したいので、秀丸エディタを使用して整形したいと思っています。 何段階かに分けてしないといけないと思いますが、アドバイスをいただければと思います。 以下にある程度考えたものを書きますので、ご指摘いただけば幸いです。 1) 全角文字を半角にする 右クリックメニューから「ハンカクに変換」 2) スペースやタブのみの行のスペースを削除 置換で、^[ \t]+\n → \n 3) 末尾の余分なスペースを削除 置換で、 $ → なし (※ 検索文字列の$の前には半角スペースがある。) 4) 単語の途中で改行されている単語をくっつける(末尾の-を削除し、次の行と繋げる) 5) .や?や! で終っていない行末の改行を削除 上記のような流れで大丈夫でしょうか? 4)は、[a-z]-$ で検索すれば、単語を分割する末尾のハイフンは探してくれますが、それを削除して、次の行と繋げることができず、とりあえずキーマクロで処理しました。 具体的には、キーマクロ登録開始、F3で検索、一文字シフトしてハイフンと改行を削除、キーマクロ終了で、登録しておいて、後は連続的にキーマクロを実行しました。 5)は、小文字で始まっている行の先頭を探し、スペースを入れて、バックスペースで前の行とつなぎました。 ^[a-z] それでも行末が変な所があったので、 [^\.\!\?]$ で検索して、個別に直していきました。(タイトル行などで、ピリオドで終わらない場合もあるので。) このような整形の必要性は割とありそうなのですが、なかなかいい情報が見当たりませんでした。 アプリケーションも探しましたが、なかなか見つからなかったのと、見つかったものもうまくいきませんでした。 何かうまい方法などありましたら、教えてください。

  • Word行頭のスペースについて

    Wordを使ってテープ起こしの仕事をしています。 行末から、次の行頭にかけて、聞き取れなかった分だけの長さのスペースを入れたいのですが、どうやら“行頭にスペースが入ってはダメ”という禁則処理のようなものが効いているもよう。 カーソルが行移行するとき(“Enter”による改行はしない)、行頭に空白が来るべきところなのに、余白を無視するかたちで右へカーソルが動いていきます。 そして、もちろん行頭には、一見、スペースはナシ。 ただし、実は隠れスペースが行末にあるという。 この機能を使わず、行頭にもスペースが来るようにするには、どんな書式設定をすればよいでしょうか? ちなみに、Wordのバージョンは2000です。 OSは(関係ないかもしれないですが)XPです。 よろしくお願いします。

  • 正規表現の ^

    grep -n '^^#' abc.txt 上記は、「#が行末にある行番号とその行を表示する」とある本に書かれています。 どうして#が行末に限定されるのかわからないのですが。 ^が二つ並ぶと、その次にくる文字は行末になるという規則があるのでしょうか。

  • word2002 スペースで行頭を揃えるには?

    ワード2002を使用しています。 文字を打ち込んでから、行頭を揃える為にスペースを入れると、 空白が入ります。 例 □□□最初の行は良いのですが、改行していない次の行頭にスペースを入れると、□□□… (ココニ入れたい)前行の文末にスペースが延々と入ります。    これを、   タブのような機能で行うには  どうすれば良いのでしょうか。   宜しくお願いします。

  • Word2007 行頭のスペース表示

    「常に画面に表示する編集記号」で「スペース」に, チェックを入れています。 行頭でスペースを押すと,□が表示されます。 しかし,行頭に文字が入っている状態で頭にスペースを入れると, 文字は右に移動しますが,□は表示されません。 どこかの設定でできるようになるのでしょうか? 例 あいうえお 文頭にスペースを挿入  あいうえお 以下のようにしたい □あいうえお なお,行頭文字がないところにスペースを入れ(□を表示させ), エンター記号を削除し下の行の文字をもってくるとか, どこからか切って貼ってくるという方法はナシでお願いします。

  • 【正規表現】コメントアウトされていない文字列のマッチ

    お世話になっております。 あるファイル群にgrepをかけて結果を取得したいのですが あと半歩という所でつまづいています。 正規表現の考え方のご示唆をいただけませんでしょうか。 宜しくお願い致します。 ■やりたいこと コメントアウトされていない文字列のマッチ ■対象文字列 1行目:ほげ 2行目://ほげ 3行目:// これは否定 ほげ 4行目:ほげ //ここにコメントがはいるとひっかからない(><) ■コメントアウト文字 // 1行目と4行目の「ほげ」をマッチさせたいのです。 正規表現の先読み否定を使って ^(?!//.*)ほげ$ 行頭から、「//」が後に続かなくて「ほげ」がある行末 とやってるのですが、 4行目がひっかかりません。 (?!//.*)の部分で、「//」から「ほげ」までを否定している為だと思うのですが、どのように考え、どのように記載すればスマートでしょうか。 お忙しい所恐縮ですが アドバイスいただければ幸いです。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • カーソルのある行の行頭と行末に文字を入れる方法

    1. カーソルのある行の行頭と行末に文字列を入れる方法を教えてください。 (あいう→□□あいう□□) 2.また、すでに1が行われている場合(もしくは、指定された文字が行頭と行末にあるとき)1と別の文字列を入れる方法も合わせて教えてください。 (□□あいう□□→□□□あいう□□□ □□□あいう□□□→□□□□あいう□□□□) 勝手な質問ですがよろしくお願いいたします。

  • 正規表現の置換(EmEditor)

    Fireworksで書きだしたhtmlをEmEditorで修正中です。 name="●●●" を一括削除しようと正規表現を使った置換を試みていますが上手く出来ません。 検索する文字列に入れるサンプル文字を教えて頂けませんか。 ■検索したい文字列例(行頭に半角スペースあり) (半角スペース)name="c123_r4_c6" (半角スペース)name="c123_r5_c5" (半角スペース)name="c123_r6_c4" などです。 全てに共通するものは name=""、c123、_r、_c です。 4、5、6 の位置にある数字は変わります。 ■置換後の文字列 空白 (検索したい文字列の行頭半角スペースも削除) よろしくお願いします。