If I have multiple instances that match the pattern, but only want the first one, which is the best way to handle it?

Putting the "U" flag seems to work, but I don't understand the full implications of using it here.

preg_match("|$start(.*?)$end |Ui", $contents, $text);

Alternatively, I could use preg_match_all and use $text [1].

Thanks....

John W. Holmes wrote:

From: "Al" <[EMAIL PROTECTED]>



I'm trying to compose a general purpose text snip expression to extract
a text segment from a string.

Should this work for all reasonable cases?  It seems to work for several
test strings.

$start= "str1";

$end= "str2";

preg_match ("|$start (.*) ? $end |i", $contents, $text);

$segment= $text[1];



Looks like you have some extra spaces in there that'll mess it up. The '?' for example, is only applying to the space before it.

You want

preg_match("|$start(.*?)$end |i", $contents, $text);

Note that this will only return one match when there could be more,
depending upon your string. If you want all of them, use preg_match_all().

---John Holmes...



-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to