例如
我有一个像"12345%67890"
Regexp [^%]*
给了我12345
。
如果我不需要使用"%"
,而是"<%"
,则如何获得相同的结果。
非常感谢。
更多信息:
我有一个很大的文字,我在%%
之间进行了一些替换,比如%test%
我使用preg_match_all
和preg_replace
更改了其他内容,但是如果使用%不是隔板,一切都崩溃了。例如:%test 90% test%
,所以我决定将%更改为更复杂的内容,例如<% test 90% test %>
。
答案 0 :(得分:3)
根据您的新信息,您听起来像控制输出,这使得这一切都很奇怪。
在任何情况下,这是一个正则表达式,它将捕获您创建的包装器的内容:
<%(.+?)%>
注意惰性匹配的?
。
代码示例:
$string = "asdfar <%test123%>farasr%<5 sara><%90% is cool%%><%ooooaaaah%>>>%<%>%%";
preg_match_all('/<%(.+?)%>/', $string, $matches);
var_dump($matches);
输出:
array(2) {
[0]=>
array(3) {
[0]=>
string(11) "<%test123%>"
[1]=>
string(16) "<%90% is cool%%>"
[2]=>
string(13) "<%ooooaaaah%>"
}
[1]=>
array(3) {
[0]=>
string(7) "test123"
[1]=>
string(12) "90% is cool%"
[2]=>
string(9) "ooooaaaah"
}
}
答案 1 :(得分:0)
对我来说,你应该分手,而不是匹配:
$subject = "12345<%67890";
$result = preg_split('/<%/', $subject);
print_r($result);
输出:
Array
(
[0] => 12345
[1] => 67890
)