如何捕获整条线,其中包含'mystring'。 例如:
mystring er as
mystring2 //spaces before and after string
我已尝试^
和$
,但无效。
谢谢。
答案 0 :(得分:0)
^.*mystring.*$
您可能需要捕获括号,但可能不需要。
答案 1 :(得分:0)
使用标记m
进行多线捕获,并观察两个掩码.*
是否不合适。
在PHP中:
#^(.*?mystring.*?)$#m
或
#^(.*mystring.*)$#Um
答案 2 :(得分:0)
如果你想将一个字符串与'mystring'的任何变体匹配,这样做:/^.*mystring.*$/m
如果您想严格匹配'mystring',则需要word boundaries:/^.*\bmystring\b.*$/m
模式解释:
^
开始匹配数据的开头或换行符.*
匹配零个或多个不是换行符的字符\b
匹配字边界mystring
匹配字符串:mystring \b
匹配字边界.*
匹配零个或多个不是换行符的字符$
匹配数据末尾或换行符(EOL)'m'标志使^和$匹配数据中的换行符。
示例脚本:
<?php
$string = <<<EOT
mystring0
mystring er as
mystring2 //spaces before and after string
EOT;
// match mystring and mystring2 for example
preg_match('/^.*mystring.*$/m', $string, $match);
echo "MATCH: <pre>" . $match[0] . "</pre>\n"; // prints ' mystring0 '
// only match mystring and mot mystring2 for example
preg_match('/^.*\bmystring\b.*$/m', $string, $match);
echo "MATCH: <pre>" . $match[0] . "</pre>\n"; // prints 'mystring er as'
?>
b.t.w。 pre标签是这样的,所以空格不会在HTML输出中修剪,只是从我认为可能是你的问题的空间的评论。
答案 3 :(得分:0)
怎么样:
$string = '
mystring er as
mystring2 //spaces before and after string
';
preg_match_all('/(.*\bmystring\b.*)+/m', $string, $m);
print_r($m);
<强>输出:强>
Array
(
[0] => Array
(
[0] => mystring er as
)
[1] => Array
(
[0] => mystring er as
)
)