我有这个字符串:
$str= 'To do list: - Buy milk - Feed cat';
如何通过检查:
和-
字符的存在来将其转换为
To do list:
- Buy milk
- Feed cat
我正在考虑创建一个reg表达式,用于检查字符串是否包含:
或-
个字符,然后在每个匹配项中添加<br>
标记。参数...
答案 0 :(得分:1)
无需爆炸,您可以使用正则表达式轻松转换所需格式的输入文本:
\s*(-\s*)
并根据您的要求替换为 \n$1
或(<br>
而不是\n
)
现场演示here
使用preg_replace
的PHP中的示例代码:
$re = '/\s*(-\s*)/';
$str = 'To do list: - Buy milk - Feed cat';
$subst = '\\n$1';
$result = preg_replace($re, $subst, $str);
echo $result; //To do list:\n- Buy milk\n- Feed cat
答案 1 :(得分:1)
试试这个:
$str ='';
$x1 = $x = array();
$str = 'To do list: - Buy milk - Feed cat';
$x = explode(":",$str);
$x1 = explode(" - ",$x[1]);
echo $x[0];
echo "<br/>";
foreach($x1 as $y){
echo $y."<br/>";
}
答案 2 :(得分:0)
尝试使用preg_split()
:preg_split("/[\s,-:]+/", $str)
http://php.net/manual/fr/function.preg-split.php
简单的explode()
php方法无法做到这一点。
答案 3 :(得分:0)
这可以简单地使用没有正则表达式的爆炸功能来完成。这里是如何
将输入数据分成2个数组元素。
$x = explode(":",$str);
所以x现在是一个数组,第一个元素的文本在:
之前,第二个元素的字符串包含任务。
$tasks = explode("-",$x[1]);
now task是一个数组,每个元素都包含待办事项列表。
或单行实现。
$tasks = explode("-", explode(":",$str)[1] );
答案 4 :(得分:0)
您只需使用preg_split:
即可$str='To do list: - Buy milk - Feed cat';
$keywords = preg_split("/[-]+/", $str);
或
$keywords = explode("-", $str);
测试2(爆炸):https://eval.in/893167