正規表現の最短一致
- 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,474 views




