正規表現の最短一致
- VB,VBA
- 
                         2012-01-20                                                                                                 - 更新:2012-12-19 2012-01-20                                                                                                 - 更新:2012-12-19
この記事は最終更新日から1年以上経過しています。
                    
                    正規表現の文字列検索にて、最短一致を検索します。
デフォルトは最長一致ですが、量指定子("*"、"+"、"{}"等)の後に"?"を付けることで最短一致に変更できます。
Visual Basic
Dim regEx As Object
Dim Matches As Variant
'正規表現オブジェクト
Set regEx = CreateObject("VBScript.RegExp")
regEx.Pattern = "あ.+お" '"あ"で始まり"お"で終わる文字列を表す
                         '正規表現(最長一致)
'文字列全体とマッチする
MsgBox regEx.Replace("あいうえおあいうえおあいうえお", "AIUEO") 
regEx.Pattern = "あ.+?お" '"あ"で始まり"お"で終わる文字列を表す
                          '正規表現(最短一致)
'最初の"あいうえお"のみマッチする。
MsgBox regEx.Replace("あいうえおあいうえおあいうえお", "AIUEO") 
PHPの場合
<?php $args = "<h1>h1 test</h1>"; $pattern = "/<.*?>/"; ?>
<?php
//全てのマッチする文字列を検索する
preg_match_all($pattern, $args, $matches, PREG_PATTERN_ORDER);
foreach($matches as $match)
{
	print_r($match);
}
?>
出力結果
Array
(
    [0] => <h1>
    [1] => </h1>
)
<?php //マッチした文字列を置き換える $args = preg_replace($pattern, "<p>", $args, 2); echo $args; ?>
出力結果
<p>h1 test<p>
                        この記事がお役に立ちましたらシェアお願いします
                    
                    
                 
                                            
                        17,479 views 
                                                                    
                    
                








 Fedoraインストール時にごちゃごちゃになったHDの整理の... (25/02/14)
 Fedoraインストール時にごちゃごちゃになったHDの整理の... (25/02/14)