<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>文字列 on qwerty.work</title>
        <link>https://qwerty.work/tags/%E6%96%87%E5%AD%97%E5%88%97/</link>
        <description>Recent content in 文字列 on qwerty.work</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>ja-JP</language>
        <lastBuildDate>Thu, 11 May 2017 22:21:55 +0900</lastBuildDate><atom:link href="https://qwerty.work/tags/%E6%96%87%E5%AD%97%E5%88%97/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>MovableTypeのregex_replaceでシングルクォーテーションの置換えをするとエラーが出るとき</title>
            <link>https://qwerty.work/post/2017/05/movabletype-regex_replace/</link>
            <pubDate>Thu, 11 May 2017 22:21:55 +0900</pubDate>
            <guid>https://qwerty.work/post/2017/05/movabletype-regex_replace/</guid>
            <description>&lt;p&gt;MovableTypeでAMP対応のページを書き出すためのテンプレートができても&lt;strong&gt;Google Search Console&lt;/strong&gt;の&lt;strong&gt;Accelerated Mobile Pages&lt;/strong&gt;で致命的なエラーや警告が次々出てきてHTMLのソースを修正しなければならない部分がたくさん出てきました。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;border=&amp;ldquo;0&amp;rdquo;&lt;strong&gt;や&lt;/strong&gt;target=&amp;quot;_blank&amp;quot;&lt;strong&gt;とか&lt;/strong&gt;style=&amp;quot;&lt;/strong&gt;&amp;quot;**を使ったらダメとか&amp;hellip;。&lt;/p&gt;&#xA;&lt;p&gt;これらと一つ一つを正規表現で置換をするMT関数の&lt;a class=&#34;link&#34; href=&#34;https://www.movabletype.jp/documentation/appendices/modifiers/regex_replace.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;regex_replace&lt;/a&gt;を使って不要な要素を削除することにしました。&lt;/p&gt;&#xA;&lt;p&gt;ただ、自分は正規表現が苦手でなかなか思った通りの置換や不要な文字列の削除ができませんでした。しかし、なんとか解決できたので参考になった正規表現のサンプルのページやソースをメモ。&lt;/p&gt;&#xA;&lt;h3 id=&#34;正規表現による置換の参考&#34;&gt;正規表現による置換の参考&#xA;&lt;/h3&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;  &#xA;&#xA;&#xA;&lt;div class=&#34;link-card&#34;&gt;&#xA;  &lt;a href=&#34;https://nelog.jp/wordpress-content-to-amp&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &#xA;    &lt;div class=&#34;link-card-image&#34;&gt;&#xA;      &lt;img src=&#34;https://image.thum.io/get/width/300/crop/200/https://nelog.jp/wordpress-content-to-amp&#34; alt=&#34;https://nelog.jp/wordpress-content-to-amp&#34; loading=&#34;lazy&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &#xA;    &lt;div class=&#34;link-card-body&#34;&gt;&#xA;      &lt;span class=&#34;link-card-title&#34;&gt;https://nelog.jp/wordpress-content-to-amp&lt;/span&gt;&#xA;      &#xA;      &lt;span class=&#34;link-card-url&#34;&gt;https://nelog.jp/wordpress-content-to-amp&lt;/span&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;上記のページはWordPress向けにPHPで書かれておりますが、わかりやすかったです。&lt;/p&gt;&#xA;&lt;h3 id=&#34;シングルクォーテーションでエラー&#34;&gt;シングルクォーテーションでエラー&#xA;&lt;/h3&gt;&lt;p&gt;ここまではよかったのですが、シングルクォーテーション（&amp;rsquo;）でつまずきました。&lt;/p&gt;&#xA;&lt;p&gt;例えば、&lt;strong&gt;border&lt;/strong&gt;を消そうとしたとき、**border=&amp;ldquo;0&amp;rdquo;&lt;strong&gt;や&lt;/strong&gt;border=&amp;lsquo;0&amp;rsquo;**のように0をダブルクォーテーションで囲ってある場合と、シングルクォーテーションで囲ってある場合があります。正規表現の検索対象にシングルクォーテーション（&amp;rsquo;）が含まれていると、DreamWeaverや正規表現の使えるテキストエディタではちゃんと置換ができるのに、全く同じ正規表現をMovableTypeのテンプレートに使うとエラーが出てうまくいきませんでした。ダブルクォーテーション（&amp;quot;）だけだと問題なく置換できました。&lt;/p&gt;&#xA;&lt;h3 id=&#34;エラーが出たソース&#34;&gt;エラーが出たソース&#xA;&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&amp;lt;&lt;/span&gt;$mt:Var name=&amp;#39;regex_0&amp;#39; value=&amp;#39;/( border| target| style| onclick)=[&amp;#34;&amp;#39;](.*?)[&amp;#34;&amp;#39;]/g&amp;#39;$&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&amp;lt;&lt;/span&gt;$mt:Var name=&amp;#39;regex_1&amp;#39; value=&amp;#39;&amp;#39;$&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;MTUnless&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;regex_replace&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;$regex_0&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;,&amp;#34;$&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;regex_1&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&amp;#34;&lt;/span&gt;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;mt:EntryBody&lt;/span&gt;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;mt:EntryMore&lt;/span&gt;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;MTUnless&lt;/span&gt;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;[&amp;quot;&amp;rsquo;]&lt;strong&gt;のように****の&lt;/strong&gt;value&lt;/strong&gt;の値にシングルクォーテーション（&amp;rsquo;）を含まれているとエラーが出ます。シングルクォーテーション（&amp;rsquo;）に¥マークを付けて**¥&amp;rsquo;**とエスケープしてもダメでした。&lt;/p&gt;&#xA;&lt;h3 id=&#34;原因は変数の使い方&#34;&gt;原因は変数の使い方&#xA;&lt;/h3&gt;&lt;p&gt;原因はMTのテンプレート内で使う変数をセットする書き方（）が悪かったようで、以下のページ内にもあるように**～**を使って変数に正規表現の検索対象を入れて使うと解決できました。&lt;/p&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;  &#xA;&#xA;&#xA;&lt;div class=&#34;link-card&#34;&gt;&#xA;  &lt;a href=&#34;http://www.skyarc.co.jp/engineerblog/entry/regex_replace_1.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &#xA;    &lt;div class=&#34;link-card-image&#34;&gt;&#xA;      &lt;img src=&#34;https://image.thum.io/get/width/300/crop/200/http://www.skyarc.co.jp/engineerblog/entry/regex_replace_1.html&#34; alt=&#34;http://www.skyarc.co.jp/engineerblog/entry/regex_replace_1.html&#34; loading=&#34;lazy&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &#xA;    &lt;div class=&#34;link-card-body&#34;&gt;&#xA;      &lt;span class=&#34;link-card-title&#34;&gt;http://www.skyarc.co.jp/engineerblog/entry/regex_replace_1.html&lt;/span&gt;&#xA;      &#xA;      &lt;span class=&#34;link-card-url&#34;&gt;http://www.skyarc.co.jp/engineerblog/entry/regex_replace_1.html&lt;/span&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;ダブルクォーテーション（&amp;quot;）は特に問題ないのですが、シングルクォーテーション（&amp;rsquo;）は注意が必要です。&lt;/p&gt;&#xA;&lt;h3 id=&#34;うまくいったソース&#34;&gt;うまくいったソース&#xA;&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;MTSetVarBlock&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;regex_0&amp;#34;&lt;/span&gt;&amp;gt;/( border| target| style| onclick)=[&amp;#34;&amp;#39;](.*?)[&amp;#34;&amp;#39;]/g&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;MTSetVarBlock&lt;/span&gt;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;MTSetVarBlock&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;regex_1&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;MTSetVarBlock&lt;/span&gt;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;MTUnless&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;regex_replace&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;$regex_0&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;,&amp;#34;$&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;regex_1&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&amp;#34;&lt;/span&gt;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;mt:EntryBody&lt;/span&gt;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;mt:EntryMore&lt;/span&gt;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;MTUnless&lt;/span&gt;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これで、border=&amp;quot;&lt;strong&gt;&amp;quot;、target=&amp;quot;&lt;/strong&gt;&amp;quot;、style=&amp;rsquo;&lt;strong&gt;&amp;rsquo;、 onclick=&amp;rsquo;&lt;/strong&gt;&amp;lsquo;など、ダブルクォーテーションとシングルクォーテーションのどちらで囲ってあっても全部削除できます。&lt;/p&gt;&#xA;&lt;h3 id=&#34;その他参考ページ&#34;&gt;その他参考ページ&#xA;&lt;/h3&gt;</description>
        </item></channel>
</rss>
