- ベストアンサー
文頭が一致するものの末尾を置換したい。正規表現で実現できるでしょうか?
文頭が一致するものの末尾を置換したい。正規表現で実現できるでしょうか? 頭に「AN」と付いたら、末尾のカンマを1つ削除というような置換を行いたいと 思っています。 例: AN,,,,,,, ↓ AN,,,,,, にしたい。 頭の文字以降はランダムで、末尾にカンマということだけは同じです。 ランダムなので、普通にメモ帳で置換ということは出来なさそうですし、 サクラエディタなどで正規表現を使ってあげたらいけるのかなと思ってるのですが、 疎いのでどうしたら良いかわからず困っております。 ご教授いただけないでしょうか?
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
#1の方に示していただいた正規表現で、 サクラエディタでも実現できます。 メニュー:「検索」→「置換」と選び、 置換ダイアログが出てきます。 正規表現のチェックボックスにチェックを入れ、 置換前を「^(AN.*),$」とします。 置換後を「$1」として、 置換してみてください。
その他の回答 (5)
- tatsu99
- ベストアンサー率52% (391/751)
#2です。 >下のコマンドだと、末尾一文字だけ削除にはならないように思うんですが(ならなかった)実行環境がまずいのでしょうか…。 ううむ・・・・ vectorのsedでは置換できませんね。 失礼しました。 お詫びに秀丸での置換例です。 秀丸でテキストを表示して、 検索(S)->置換(R)として 検索 ^(AN.*),$ 置換 \1 を入力して下さい。尚、そのとき、必ず正規表現にチェックを入れて実行して下さい。 実際に、version7.07の秀丸で確認しました。
- Tacosan
- ベストアンサー率23% (3656/15482)
「sed を使う」なら, /^AN/s/,$// のほうがより直接的に「やりたいこと」を書いているような気がする.
- papagal
- ベストアンサー率50% (7/14)
SEDは下記ではないですか? "s/^\(AN.*\),$/\1/"
- tatsu99
- ベストアンサー率52% (391/751)
sedによる正規表現での回答は#1のかたの通りですが、 正規表現以前に、どの環境で、どのようなツールを使ってやるのかを決めた方がよいと思いますよ。 質問を見た限りでは、windows上で実行したいと理解しましたので(windows-7,vista,xpの区別もできれば判った方がよいです。) 1案、サクラエディタで置換する。 2案、秀丸で置換する。 3案、コマンドプロンプトで、sedもしくはsedもどき(これは標準では組み込まれていないのでvector等からダウンロードの必要があります。vectorにあるかどうかは、未確認です)で、置換する。 4案、perl,awkが使えるなら、コマンドプロンプトでそれで行う。(perl,awkも標準では組み込まれていませんので3案と同じことをおこないます) 現実的には1案かと思います。 1案だと、サクラエディタに詳しい人のみしか、回答できないので、良回答が得られるかどうかは、微妙です。(私もサクラエディタの場合は、回答できません) 2案だと、秀丸の利用者は多いので、回答がつきやすいです。 3案は、質問者様にとってちょっとハードルが高いかも知れません。 4案は、もっとハードルが高いかも知れません。 今後も、一括して修正を行うようなことがあるなら 2案、又は3案をおすすめします。(4案ができるならベストですが・・・) 秀丸は一定期間、無料で使用できますのでご安心下さい。 3案、4案の製品は当然無料で使用できます。
- 参考URL:
- http://www.vector.co.jp/
補足
3で対処しています。 ベクターでプロンプトからsedが実行出来るものを落としました。 単純な、s/aaa/bbb/gみたいなものは理解してますが…。 下のコマンドだと、末尾一文字だけ削除にはならないように思うんですが(ならなかった)実行環境がまずいのでしょうか…。
sedによる置換式は下記のようになります。 s/^(AN.*),$/$1
補足
sed実行可能環境ですが、うまくいきません。 コマンドはこれで良いんですよね…?
お礼
ありがとうございます! サクラで実現できました。 困っていたので本当に助かりました。