Php 使用量词匹配子模式的preg_*函数
我有一个这样的正则表达式:Php 使用量词匹配子模式的preg_*函数,php,regex,Php,Regex,我有一个这样的正则表达式: /(?:^- (.*)$\r*\n*)+/m 目的是匹配以-[space]开头的一行或多行文本 除了收集匹配的子模式(.*)之外,这一切都很好。只返回最后一个,所有以前的子模式匹配(作为索引0的一部分出现在结果数组中)都将丢失 我真的需要一些方法来获取数组中的这些子模式,这样我就可以将它们传递给内爆,并对它们执行我正在尝试的操作 我是不是遗漏了一些明显的东西?也许你可以 preg_match_all('/^- (.*)\r\n/m', $subject, $resu
/(?:^- (.*)$\r*\n*)+/m
目的是匹配以-[space]
开头的一行或多行文本
除了收集匹配的子模式(.*)
之外,这一切都很好。只返回最后一个,所有以前的子模式匹配(作为索引0的一部分出现在结果数组中)都将丢失
我真的需要一些方法来获取数组中的这些子模式,这样我就可以将它们传递给内爆
,并对它们执行我正在尝试的操作
我是不是遗漏了一些明显的东西?也许你可以
preg_match_all('/^- (.*)\r\n/m', $subject, $result, PREG_PATTERN_ORDER);
var_dump($result);
例如:
<?php
$subject = "- some line
- some content
- some other content
nothing to match over here
- more things here
- more patterns
nothing to match here
";
preg_match_all('/^- (.*)\r\n/m', $subject, $result, PREG_PATTERN_ORDER);
var_dump($result);
?>
你能给我们看一些输入字符串的例子吗?这似乎是一个很好的开始,但是我怎样才能在这上面进行
preg\u replace
?我不确定我是否理解。要从初始的$subject
var构建正则表达式模式,我将执行$someVar='/'。内爆('|',$result[1])。'/'代码>然后使用$someOtherVar=preg\u replace($someVar,$someReplacement,$textVar)代码>(我稍微编辑了一下正则表达式,省去了\r\n
)。如果我误解了,我道歉。
array(2) {
[0]=>
array(5) {
[0]=>
string(12) "- some line
"
[1]=>
string(15) "- some content
"
[2]=>
string(21) "- some other content
"
[3]=>
string(19) "- more things here
"
[4]=>
string(16) "- more patterns
"
}
[1]=>
array(5) {
[0]=>
string(9) "some line"
[1]=>
string(12) "some content"
[2]=>
string(18) "some other content"
[3]=>
string(16) "more things here"
[4]=>
string(13) "more patterns"
}
}