<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="https://tm.root-n.com/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel>
        <title>Tipsというかメモ programming:php:regex</title>
        <description></description>
        <link>https://tm.root-n.com/</link>
        <lastBuildDate>Tue, 18 Nov 2025 19:51:42 +0900</lastBuildDate>
        <generator>FeedCreator 1.7.2-ppt DokuWiki</generator>
        <image>
            <url>https://tm.root-n.com/lib/images/favicon.ico</url>
            <title>Tipsというかメモ</title>
            <link>https://tm.root-n.com/</link>
        </image>
        <item>
            <title>PHP :: 正規表現 / 少数点第２位までに丸める</title>
            <link>https://tm.root-n.com/programming:php:regex:float_pos2</link>
            <description>$val = preg_replace('/(\.[1-9]?[1-9]?)\d*/e', &quot;rtrim('\\1', '.')&quot;, $val);



$val = 12345;      =&gt; 12345
$val = 12345.6;    =&gt; 12345.6
$val = 12345.67;   =&gt; 12345.67
$val = 12345.6789; =&gt; 12345.67
$val = 12345.6089; =&gt; 12345.6
$val = 12345.0089; =&gt; 12345</description>
        <category>programming:php:regex</category>
            <pubDate>Sun, 16 Mar 2008 22:48:15 +0900</pubDate>
        </item>
        <item>
            <title>PHP :: 正規表現 / 日本語の範囲いろいろ</title>
            <link>https://tm.root-n.com/programming:php:regex:jp_range</link>
            <description>日本語正規表現全角ひらがな[あ-んが-ぼぁ-ょゎっー]全角カタカナ[ア-ンガ-ボァ-ョヮッー]半角カタカナ[ｱ-ﾝｧ-ｮｯｰﾟﾞ･]漢字[亜-龠]全角記号[、-◯]




ひらがなオンリー (おまけ)


	*  euc</description>
        <category>programming:php:regex</category>
            <pubDate>Sun, 16 Mar 2008 22:48:16 +0900</pubDate>
        </item>
        <item>
            <title>PHP :: 正規表現 / 「先読みの否定」を利用した例</title>
            <link>https://tm.root-n.com/programming:php:regex:look-ahead_negation</link>
            <description>$str = '&lt;font color=&quot;red&quot;&gt;&lt;font size=&quot;3&quot;&gt;フォントカラー赤：サイズ3&lt;/font&gt;&lt;/font&gt;';



上記文字列から「  フォントカラー赤：サイズ3  」を抽出する場合を考える





まず、「最短マッチ」を試してみる


&lt;?php
$str = '&lt;font color=&quot;red&quot;&gt;&lt;font size=&quot;3&quot;&gt;フォントカラー赤：サイズ3&lt;/font&gt;&lt;/font&gt;';
preg_match('#&lt;font\s+.*?&gt;(.+?)&lt;/font&gt;#', $str, $cap);
var_dump($cap);
?&gt;</description>
        <category>programming:php:regex</category>
            <pubDate>Sun, 16 Mar 2008 22:48:16 +0900</pubDate>
        </item>
        <item>
            <title>PHP :: 正規表現 / キャプチャしない丸括弧 (?:)</title>
            <link>https://tm.root-n.com/programming:php:regex:no_capture</link>
            <description>正規表現(?:)キャプチャしない丸括弧(?i)大文字小文字を無視する修飾モード(?-i)大文字小文字を無視しない修飾モード
	*  このような文字列があったとします。

  $str = '&lt;dev align=“center”&gt;Click &lt;a href=“hoge.html”&gt;log-in&lt;/A&gt; to enter.&lt;/div&gt;';</description>
        <category>programming:php:regex</category>
            <pubDate>Sun, 16 Mar 2008 22:48:16 +0900</pubDate>
        </item>
        <item>
            <title>PHP :: 正規表現 / 「順序付き選択」を利用した例</title>
            <link>https://tm.root-n.com/programming:php:regex:order_selection</link>
            <description>「Jan 31 」という日付をマッチさせる場合を考える


/Jan [0123][0-9]/



これは良くない。

「Jan 39」という存在しない日付にマッチしてしまうし、それ以上に問題なのが「Jan 7」という正しい日付にもマッチしない。</description>
        <category>programming:php:regex</category>
            <pubDate>Sun, 16 Mar 2008 22:48:16 +0900</pubDate>
        </item>
        <item>
            <title>PHP :: 正規表現 / パターン修飾子「m」「s」</title>
            <link>https://tm.root-n.com/programming:php:regex:pattern_qualification_ms</link>
            <description>m (PCRE_MULTILINE)

	*  複数行として扱う


デフォルトで、PCRE は、検索対象文字列を（実際には複数行からなる 場合でも）単一の行からなるとして処理します。

「行頭」メタ文字 (^) は、対象文字列の最初にしかマッチしません。

一方、「行末」メタ文字 ($) は、文字列の最後、または （D 修飾子が設定されていない場合） 最後にある改行記号の前のみにしかマッチしません。

この動作は Perl と同じです。

この修飾子を設定すると、「行頭」および「行末」メタ文字は 対象文字列において、文字列の最初と最後に加えて、各改行の直前と直後にそれぞれマッチします。

この動作は、Perl の /m 修飾子と同じです。 対象文字列の中に “\n” 文字がない場合や、 またはパターンに ^ または $ がない場合は、この修飾子を設定しても意味はありません。

(PHPマニュアルより引用)…</description>
        <category>programming:php:regex</category>
            <pubDate>Fri, 17 Oct 2008 10:46:50 +0900</pubDate>
        </item>
        <item>
            <title>PHP :: 正規表現 / 前後読み(先読み と 戻り読み)</title>
            <link>https://tm.root-n.com/programming:php:regex:special_constructs</link>
            <description>パターン名称概要説明(?=pattern)肯定先読みpattern に一致する文字列が始まる位置にある検索文字列と一致x(?=abc) は、abc が後に続く場合のみ `x' に一致(?!pattern)否定先読みpattern に一致しない文字列が始まる位置にある検索文字列と一致x(?!abc) は、abc が後に続かない場合のみ `x' に一致(?＜=pattern)肯定後読みpattern に一致する文字列で終わる位置にある検索文字列と一致(?&lt;=abc)x は、abc の後に続く場合のみ `x' に一致(?&lt;!pattern)否定後読みpattern に一致しない文字列で終わる位置にある検索文字列と一致(?&lt;!abc)x は、abc の後に続かない場合のみ `x' に一致
	*  一致した文字列は記憶されず、後方参照できない。
	*  pattern に改行を含めることはできない。…</description>
        <category>programming:php:regex</category>
            <pubDate>Wed, 22 Oct 2008 13:29:12 +0900</pubDate>
        </item>
        <item>
            <title>PHP :: 正規表現 / 「前後読み(先読み と 戻り読み)」を利用した例</title>
            <link>https://tm.root-n.com/programming:php:regex:track</link>
            <description>前後読み正規表現先読み(?=…)戻り読み(?＜=…)
連続する数値に カンマ を適用して可読性をあげる

	*  数字の連続に対して、3桁ごとに カンマ を適用する。
	*  連続する数値は4桁以上に限る。
	*  ただし、小数点を含む数値には適用しない</description>
        <category>programming:php:regex</category>
            <pubDate>Wed, 22 Oct 2008 13:17:35 +0900</pubDate>
        </item>
    </channel>
</rss>
