我有一个看起来像这样的字符串:
$string = '"excludeIF":["miniTrack","isTriangleHanger","tubeTrack","boxTrack"]';
我需要摆脱“[]
数组内部的内容,所以它看起来像这样:
$string = '"excludeIF":[miniTrack, tubeTrack, boxTrack]';
我正在尝试一些正则表达式,但我一直在摆脱所有的引用。
答案 0 :(得分:3)
对于这个特例:
$string = '"excludeIF":["miniTrack","isTriangleHanger","tubeTrack","boxTrack"]';
preg_match("/((?<=\[).*(?=\]))/", $string, $match);
$change = str_replace('"', "", $match[0]);
$result = preg_replace("/$match[0]/", $change, $string);
这样做是为了获取方括号内的内容,删除引号,然后用清理后的内容替换原始内容。
如果您稍后在方括号外面使用完全相同的字符串,则可能会遇到错误,但如果您理解我所写的内容,则应该很容易解决。
希望它有所帮助。
PS。如果你向我们展示了你正在尝试的正则表达方式,也许会有所帮助,也许是在正确的道路上,但只是有一些误解。
答案 1 :(得分:1)
所以是的,我同意关于XY问题的评论,但我仍然想尝试帮助。
$string = '"excludeIF":["miniTrack","isTriangleHanger","tubeTrack","boxTrack"]';
您现在需要查找要编辑的字符串的开始和结束位置。这可以通过以下方式完成:
$stringPosition1 = strpos($string,'[');
$stringPosition2 = strpos($string,']');
现在你有了正确的位置,你可以substr()
找到你想要编辑的确切字符串。
$str = substr($string,$stringPosition1,$stringPosition2);
从这里你可以做一个简单的str_replace()
$replacedString = str_replace('"','',$str);
$result = '"excludeIF":' . $replacedString;
如果您难以理解上述任何功能,那么查看PHP文档是一个很好的主意。我真的相信你在编码方面同样擅长你的语言知识。所以请阅读以下文件:
答案 2 :(得分:-1)
测试此代码:
<?php
$string = '"excludeIF":["miniTrack","isTriangleHanger","tubeTrack","boxTrack"]';
$str_array = str_split($string);
$string_new = '';
$id = 0;
foreach ($str_array as $value) {
if($value == '[' || $id != 0){
$id = ($value != ']') ? 1 : 0;
$string_new .= ($value != "\"") ? $value : '' ;
} else {
$string_new .= $value;
}
}
echo $string_new;
//RESULT "excludeIF":[miniTrack,isTriangleHanger,tubeTrack,boxTrack]
?>
祝你好运!
修改强>
<?php
$string = '"excludeIF":["miniTrack","isTriangleHanger","tubeTrack","boxTrack"]';
$part = str_replace("\"","",(strstr($string,'[')));
$string = substr($string,0,strpos($string,'[')).$part;
echo $string;
?>
其他可能的解决方案。
有趣的代码!