「
テキスト整形
」を編集中 (節単位)
ナビゲーションに移動
検索に移動
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、さまざまなメリットもあります。
スパム攻撃防止用のチェックです。 決して、ここには、値の入力は
しない
でください!
=== 除去/削除 === ;★空白文字を除去 :空白文字(半角空白/全角空白/水平タブ)を除去します。 <syntaxhighlight lang="javascript" copy> f.push(["空白文字を除去","s",function(_){ //2013-09-15 return _.replace(/[ \t]+/g,"") }]); </syntaxhighlight> ;★行頭行末/行頭/行末の空白を除去 <syntaxhighlight lang="javascript" copy> f.push(["行頭行末の空白を除去","L",function(_){ //2013-09-15 return _.replace(/^[ \t]+|[ \t]+$/gm,"") }]); f.push(["行頭の空白を除去","L",function(_){ //2015-02-14 return _.replace(/^[ \t]+/gm,"") }]); f.push(["行末の空白を除去","L",function(_){ //2015-02-14 return _.replace(/[ \t]+$/gm,"") }]); </syntaxhighlight> ;空白行の空白を除去 :空白行を、改行のみの空行にします。 <syntaxhighlight lang="javascript" copy> f.push(["空白行の空白を除去","L",function(_){ //2017-06-25 return _.replace(/^[ \t]+$/gm,"") }]); </syntaxhighlight> ;★空白行を削除 :空白行(半角空白/全角空白/水平タブ/改行のみの行)を削除します。 <syntaxhighlight lang="javascript" copy> f.push(["空白行を削除","L",function(_){ //2015-03-14 return _.replace(/^[ \t]*$\n?/gm,"") }]); </syntaxhighlight> ;空白行を圧縮 :連続する空白行を1行の空行に変換します。連続しない(=1行の)空白行は削除します。 <syntaxhighlight lang="javascript" copy> f.push(["空白行を圧縮","L",function(_){ //2015-02-14 return _.replace(/^[ \t]+$/gm,"").replace(/^(\n)\n+|^\n/gm,"$1") }]); </syntaxhighlight> ;空白行を減量 :連続する空白行を1行分削減します。 :空白行の連続が3行なら2行に、2行なら1行に、1行なら0行(=削除)になります。 <syntaxhighlight lang="javascript" copy> f.push(["空白行を減量","L",function(_){ //2015-02-14 return _.replace(/((?:^[ \t]*$\n?)*)(?:^[ \t]*$\n?)/gm,"$1") }]); </syntaxhighlight> ;★重複行を単一化 :同じ内容の行が2個以上ある場合、2個目以降を削除します。 <syntaxhighlight lang="javascript" copy> f.push(["重複行を単一化","L",function(_){ //2018-01-15 var a=_.split("\n"),b=[],map={}; for(var i=0;i<a.length;i++){ if(!Object.prototype.hasOwnProperty.call(map,a[i])){map[a[i]]=true;b.push(a[i])} } return b.join("\n") }]); </syntaxhighlight> ;重複行を単一化(空白行は除く) :空白行(半角空白/全角空白/水平タブ/改行のみの行)は例外とし、削除しません。 <syntaxhighlight lang="javascript" copy> f.push(["重複行を単一化(空白行は除く)","L",function(_){ //2018-01-15 var a=_.split("\n"),b=[],map={}; for(var i=0;i<a.length;i++){ if(/^[ \t]*$/.test(a[i])||!Object.prototype.hasOwnProperty.call(map,a[i])){map[a[i]]=true;b.push(a[i])} } return b.join("\n") }]); </syntaxhighlight> ;★連続する重複行を単一化 <syntaxhighlight lang="javascript" copy> f.push(["連続する重複行を単一化","L",function(_){ //2015-02-14 return _.replace(/(^.*$)\n(^\1$\n?)+/gm,"$2") }]); </syntaxhighlight> ;重複する/しない行を抽出 <syntaxhighlight lang="javascript" copy> f.push(["重複する行を抽出","L",function(_){ //2018-01-15 var a=_.split("\n"),b=[],k=0,map={}; for(var i=0;i<a.length;i++){ if(!Object.prototype.hasOwnProperty.call(map,a[i])){b[k]={dup:false,txt:a[i]};map[a[i]]=k++;}else{b[map[a[i]]].dup=true} } i=b.length;while(--i>=0){ if(b[i].dup){b[i]=b[i].txt}else{b.splice(i,1)} } return b.join("\n") }]); f.push(["重複しない行を抽出","L",function(_){ //2018-01-15 var a=_.split("\n"),b=[],k=0,map={}; for(var i=0;i<a.length;i++){ if(!Object.prototype.hasOwnProperty.call(map,a[i])){b[k]={dup:false,txt:a[i]};map[a[i]]=k++;}else{b[map[a[i]]].dup=true} } i=b.length;while(--i>=0){ if(!b[i].dup){b[i]=b[i].txt}else{b.splice(i,1)} } return b.join("\n") }]); </syntaxhighlight> ;※空白行系/重複行系コマンドの比較 (☐ は空白/↵ は改行) :{|class="wikitable" ! 例文 !! 空白行<br>を削除 !! 空白行<br>を圧縮 !! 空白行<br>を減量 !rowspan="2" width="6px"| ! 例文 !! 重複行を<br>単一化 !! 空白行は<br>除く !! 連続する<br>重複行 !! 重複する<br>行を抽出 !! しない<br>行を抽出 |-style="vertical-align:top;" | 1行目↵<br>☐↵<br>2行目↵<br>☐↵<br>☐☐↵<br>3行目↵<br>☐↵<br>☐☐↵<br>☐☐☐↵<br>4行目 | 1行目↵<br>2行目↵<br>3行目↵<br>4行目 | 1行目↵<br>2行目↵<br>↵<br>3行目↵<br>↵<br>4行目 | 1行目↵<br>2行目↵<br>☐↵<br>3行目↵<br>☐↵<br>☐☐↵<br>4行目 | あいう↵<br>あいう↵<br>☐↵<br>☐↵<br>☐☐↵<br>あいう↵<br>あいう↵<br>カキク↵<br>さしす↵<br>カキク<br> | あいう↵<br>☐↵<br>☐☐↵<br>カキク↵<br>さしす | あいう↵<br>☐↵<br>☐↵<br>☐☐↵<br>カキク↵<br>さしす | あいう↵<br>☐↵<br>☐☐↵<br>あいう↵<br>カキク↵<br>さしす↵<br>カキク | あいう↵<br>☐↵<br>カキク | ☐☐↵<br>さしす |} ;★入力文字列を含む/含まない行を削除... <syntaxhighlight lang="javascript" copy> f.push(["入力文字列を含む行を削除...","L",function(_){ //2019-06-01 var p=Prompt("以下の文字列を含む行を削除:",""); if(p)return _.replace(/^(.*)$\n?/gm,function(s,t){return (t.indexOf(p)>=0)? "":s}) }]); f.push(["入力文字列を含まない行を削除...","L",function(_){ //2019-06-01 var p=Prompt("以下の文字列を含まない行を削除:",""); if(p)return _.replace(/^(.*)$\n?/gm,function(s,t){return (t.indexOf(p)>=0)? s:""}) }]); </syntaxhighlight> ;正規表現に一致する/しない行を削除... :<b style="color:#c00;">※正規表現は JavaScript (JScript) の仕様で記述します。</b> <syntaxhighlight lang="javascript" copy> f.push(["正規表現に一致する行を削除...","L",function(_){ //2019-06-01 var p=Prompt("以下の正規表現に一致する行を削除:",""); if(p){ p=new RegExp(p); return _.replace(/^(.*)$\n?/gm,function(s,t){return p.test(t)? "":s}) } }]); f.push(["正規表現に一致しない行を削除...","L",function(_){ //2019-06-01 var p=Prompt("以下の正規表現に一致しない行を削除:",""); if(p){ p=new RegExp(p); return _.replace(/^(.*)$\n?/gm,function(s,t){return p.test(t)? s:""}) } }]); </syntaxhighlight> ;行頭/行末から数文字削除... :各行の行頭/行末から指定した文字数分を削除します。 :※結合文字列には対応していません。 <syntaxhighlight lang="javascript" copy> f.push(["行頭から数文字削除...","L",function(_){ //2019-06-01 var n=parseInt(Prompt("行頭から削除する字数: ※半角数字","")); if(n>0)return _.replace(new RegExp("^(?:[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[^\\n]){0,"+n+"}","gm"),"") }]); f.push(["行末から数文字削除...","L",function(_){ //2019-06-01 var n=parseInt(Prompt("行末から削除する字数: ※半角数字","")); if(n>0)return _.replace(new RegExp("(?:[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[^\\n]){0,"+n+"}$","gm"),"") }]); </syntaxhighlight>
編集内容の要約:
MeryWikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MeryWiki:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の数式を計算してその答えを欄に入力してください (
ヘルプ
):
いちたすには =
キャンセル
編集ヘルプ
(新しいウィンドウで開きます)
スポンサーリンク
ナビゲーション メニュー
個人用ツール
ログインしていません
トーク
投稿記録
アカウント作成
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
編集
履歴表示
その他
検索
スポンサーリンク
スポンサーリンク
案内
メインページ
ヘルプ
よくある質問
マクロリファレンス
マクロライブラリ
プラグインライブラリ
構文ファイル
テーマ
寄付・開発支援
練習用ページ
開発室
開発者のブログ
ツール
スポンサーリンク