No.2ベストアンサー
- 回答日時:
こんにちは。
以下は、【タグ付き正規表現】での置換が可能なテキストエディタ等で置換を行う
場合の一例です。
注1)以下の例は、「秀丸エディタ」で置換する場合のものです。
注2)使用するアプリケーションにより、メタ文字(エスケープシーケンス)、及び、
部分正規表現(タグ付き正規表現)の文字列などが異なる場合があります。
その際は、環境に合わせて適せん変更して下さい。
注3)あくまで一例ですので、下記以外での記述方法も考えられます。
■例1
"ID="に続く、【限定した文字列】を " で括る場合。
例えば、
置換前: ID=ABC0001
置換後: ID="ABC0001"
としたい場合、
検索文字列: (ID=)(ABC0001)([ \t]|$)
置換文字列: \1"\2"\3
注)上記の検索文字列の、3番目の()カッコ内の『[』の後には、
半角スペースが1個入っています。
として置換します。
■例2
"ID="に続く、【任意の文字列】を " で括る場合。
例えば、
置換前: ID=○○○○
置換後: ID="○○○○"
○○○○は任意の文字列
※任意の文字列は、
半角スペース、タブ、"(半角ダブルクォーテーション)
及び、改行文字を含まない連続した文字列
とします。
としたい場合、
検索文字列: (ID=)([^ "\t\r\n]+)([ \t]|$)
置換文字列: \1"\2"\3
注)上記の検索文字列の、2番目の()カッコ内の『[^』の後と、
3番目の()カッコ内の 『[』の後には、半角スペースが1個
入っています。
として置換します。
※正規表現の詳細については、下記サイト等をご覧下さい。
■参考サイト
◎秀丸エディタ公式サイト
正規表現(Ver8.00対応版)
http://homepage3.nifty.com/kons/hidemaru/helpsit …
\1・\2 一般的正規表現互換のタグ付き正規表現(Ver8.00対応版)
http://homepage3.nifty.com/kons/hidemaru/helpsit …
◎Regular Expression
http://www.sixnine.net/regexp/
◎正規表現メモ
http://www.kt.rim.or.jp/~kbk/regex/regex.html
以上です。
No.4
- 回答日時:
PHPの例
<?
$str="ID=aaa xxx ID=bbb yyy ID=ccc";
print $str."<br>\n";
$pattern="/(?<=ID=)(.*?)(?=[\s\t]|$)/";
$replacement="\"$1\"";
$str=preg_replace($pattern,$replacement,$str);
print $str."<br>\n";
?>
No.3
- 回答日時:
正規表現には「方言」があるので、どの言語やツールで使用するかが明記されないと答えようがありません。
置換方法もいろいろあるので、これも指定がないと答えようがありません。
また、置換前ですが、
・これだけで1行なのか、ある行の一部なのか。一部なら、IDは複数あるのか、それを全部置き換えるのか
・IDの部分にはどんな文字列が入るのか
英数字だけ、とか、日本語も入る、とか、空白も入る、とか
必ず「ID」なのか、可変なのか
・○○○○のどんな文字列が入るのか
(以下同じ)
・書式はどうなっているのか
=の前後のに空白が入ることもあるのか
区切りを示すような文字(C言語でのセミコロン、とか)が入るのか
コメント文が付く場合があるのかどうか
といったことで、どのような正規表現にすればよいかが変わってきます。対応を間違えれば、置換したいものを置換しなかったり、置換してはいけないもの置換したり、といったことが起ります。
・これだけの行
・ID= だけ
・○○○○は任意
・前後等に空白、コメントといったよけいな文字は無い
・テキストエディタの置換ダイアログで、検索と置換の2つの欄に入力する
と仮定して、次のような形になるでしょう
検索: ^(ID=)(.*)
置換: \1"\2"
^:先頭/行頭を表わすメタ文字
():正規表現をグロープ化する。いろんな用途があるが、今回は後で引用するために使う。
.:任意の文字にマッチするメタ文字
*:直前の表現の0個以上の繰り返し。今回は .(任意の文字)の繰り返し
\1,\2: 検索での()の内容。順番に番号が振られる。(ID=)にマッチしたものが\1、(.*)にマッチしたものが\2になる。
方言がある、というのは、例えば
・(): sedでの標準は\(\)と\を付けなければならない。\無しだと、「括弧のマッチする」という普通の表現。
・\1,\2: Perl等では $1,$2 となる
というようなことです。また、ある体系での表現が別の体系に対応していない、というときもあります。
置換方法の違いは、例えば
・テキストエディタで、置換ダイアログの検索と置換に入れる。正規表現を使うを有効にする
・Perl、Sed等、専用のコマンドがある:perlなら s/^(ID=)(.*)/$1"$2"/ ;
・専用関数を使う
というのがあります。
No.1
- 回答日時:
正規表現というのが よくわかっていないと思われます
特定の文字列に合う合わないを記述するのが正規表現
今の状態で分かるのは 置換する必要があるというだけ
置換については正規表現は関係するけど
こちらは言語によって異なるので回答しようにもできない
正規表現自体も実装によって違います
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) テキストエディタで複数行にわたる文字列の行頭に番号を振る方法 4 2023/03/11 12:57
- その他(コンピューター・テクノロジー) 正規表現の置換で一部の文字列をそのまま残したい 2 2022/05/03 19:19
- オープンソース csvデータのダブルクォーテーションで囲まれた文字内にあるカンマを削除したい 3 2022/09/02 15:17
- フリーソフト サクラエディタの正規表現(grep機能)の使い方 3 2022/06/22 10:29
- その他(プログラミング・Web制作) VB.NETの正規表現について 4 2022/04/12 16:54
- PostgreSQL 数値が定期的にあらわれる文字列から、いくつめに出現した数値が指定して切り出したい 1 2023/06/08 13:12
- Windows 10 Windowsのバッチファイルで正規表現の置換方法について… 4 2022/12/09 16:00
- Visual Basic(VBA) Excel VBAでAA(BBB) → BBB.AA に置換したい 2 2022/10/30 13:59
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- MySQL UPDATE my_items SET item_name '赤い,甘い,ケーキ' WHERE id 1 2023/01/03 09:52
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイルが保存されてい...
-
ITパスポートの勉強をしていま...
-
Python... 環境設定 初心者です...
-
プログラミングサイトについて。
-
vba クリップボードクリアにつ...
-
Google ColaboでGUI作成
-
入力された文字列が、LD22000を...
-
google formsを使ったタスク依...
-
このURLで広告を出しているのは...
-
40代後半でゼロからのプログラ...
-
Fortran の定数表現について
-
https://youtube.com/shorts/bT...
-
AIの登場でプログラマーたちが...
-
https://paiza.jp/challenges/5...
-
そのまま使っただけなのに・・...
-
BATファイルについて
-
符号誤り率の計算は例題でどの...
-
VBA 電話番号の正規表現について
-
三菱シーケンサーの命令でFROM ...
-
シェルのSTEP数について教えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
AIの登場でプログラマーたちが...
-
プログラミングのPythonのnoteb...
-
ImageMagickでgif画像の一部が...
-
過剰なオブジェクト指向脳から...
-
プログラム言語について。
-
VBAでパワーシェルを実行したい...
-
40代後半でゼロからのプログラ...
-
プログラマーと学歴の関係性に...
-
Google ColaboでGUI作成
-
VBA 電話番号の正規表現について
-
プログラミング未経験者(殆ど未...
-
CLispのloop内の挙動について
-
GoogleAppsScript文字列置換の...
-
プログラミング初心者です。 Wi...
-
オブジェクト指向プログラミン...
-
楽しくて最高のプログラミング...
-
Selenium4でボタンをクリックで...
-
pythonで複数画像からgifを作る...
-
小学1年生の子です。塾に行かせ...
おすすめ情報