我正在尝试对字符串进行清理,并最终得到以下结果:
芽孢杆菌中砷抗性基因的表征 从成熟的粉煤灰酸性矿山排水中分离UWC 中和的固体
我正在尝试删除lt,i,gt,因为这些都是简化的HTML实体,似乎并未删除。解决这个问题或我可以看到的其他解决方案的最佳方法是什么?
这是我目前的解决方案:
tensor([[-1.9903, -4.0458, -4.1143, -4.0074, -3.5510, 7.1074]], device='cuda:0')
这是示例输入字符串:
/**
* @return string
*/
public function getFormattedTitle()
{
$string = preg_replace('/[^A-Za-z0-9\-]/', ' ', filter_var($this->getTitle(), FILTER_SANITIZE_STRING));
return $string;
}
谢谢!
答案 0 :(得分:2)
尝试使用strip_tags代替filter_var:http://php.net/manual/en/function.strip-tags.php
<?php
//your input string
$input_string = 'Assessing <i>Clivia</i> taxonomy using the core DNA barcode regions, <i>matK</i> and <i>rbcLa</i>';
//strip away all html tags but leave whats inside
$output_string = strip_tags($input_string);
echo $output_string;
//echos: Assessing Clivia taxonomy using the core DNA barcode regions, matK and rbcLa
?>
答案 1 :(得分:2)
输出中的lt
和gt
告诉我,您所拥有的字符串实际上更像是:
“使用核心DNA条形码区域,imatK / i和rbcLa / i评估iClivia / i分类法”
当被视为纯文本时。
您在上面显示的字符串是在浏览器中显示的,该浏览器将解释“&lt;”为“ <”和“&gt;”为“>”。 (这些通常称为“ HTML实体”,并提供了一种编码字符的方式,否则该字符将被解释为HTML。)
一个选项就是这样处理:
$s = "Assessing <i>Clivia</i> taxonomy …";
$s = html_entity_decode($s); // $s is now "Assessing <i>Clivia</i> taxonomy …"
$s = strip_tags($s); // $s is now "Assessing Clivia taxonomy"
但是请注意,strip_tags是一个非常幼稚的功能。例如,它将把“ 1 <5和6> 2”变成“ 12”!因此,您需要确保所有输入文本均采用双HTML编码,因为该示例可以使其正常工作。
答案 2 :(得分:0)
更好的方法是strip_tags(); 在此处查看手册: http://php.net/manual/ru/function.strip-tags.php 一个例子:
public function getFormattedTitle()
{
return strip_tags($this->getTitle(), '<i>');
}