- VB,VBA
- 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,072 views