【发布时间】:2011-01-20 20:44:52
【问题描述】:
我有一个字符串,例如“[{XYZ123}] 这是一个测试”,需要解析出 [{ 和 }] 之间的内容并转储到另一个字符串中。我认为正则表达式是为了完成此操作,但由于它不适合胆小的人,因此我没有尝试并且需要您的帮助。
将片段拉到 [{ 和 }] 之间的最佳方法是什么?提前感谢您的帮助!
【问题讨论】:
我有一个字符串,例如“[{XYZ123}] 这是一个测试”,需要解析出 [{ 和 }] 之间的内容并转储到另一个字符串中。我认为正则表达式是为了完成此操作,但由于它不适合胆小的人,因此我没有尝试并且需要您的帮助。
将片段拉到 [{ 和 }] 之间的最佳方法是什么?提前感谢您的帮助!
【问题讨论】:
$str = "[{XYZ123}] This is a test";
$s = explode("}]",$str);
foreach ($s as $k){
if ( strpos($k,"[{") !==FALSE ){
$t = explode("[{",$k); #or use a combi of strpos and substr()
print $t[1];
}
}
【讨论】:
<?php
$str = "[{XYZ123}] This is a test";
if(preg_match('/\[{(.*?)}\]/',$str,$matches)) {
$dump = $matches[1];
print "$dump"; // prints XYZ123
}
?>
【讨论】:
正则表达式是(?=\[\{).*(?=\}\]),虽然我不知道php是否支持前瞻。
【讨论】:
\[\{(.*?)\]\}
$1 语法在 php 中有效。