我正在练习正则表达式,而且我现在很擅长。
我基本上想用正则表达式去掉字符串中的跨度。在此之前,数据标签的大小未知。
<span class="atwho-inserted" data-atwho-at-query="*@jish*">
usertagslug[jishstaff]
usertagname[JishStaff]
</span> lol try do a
<span class="atwho-inserted" data-atwho-at- query="*@jish*">usertagslug[jishstaff] usertagname[JishStaff]
</span>"
这是我的PHP类,里面有正则表达式:
{
protected $value;
public function stripAll($value)
{
$value = preg_replace('/data-atwho-at-query="@(.*)">/', '', $value);
$value = str_replace('<span class="atwho-inserted"', '', $value);
$value = str_replace('</span>', '', $value);
return $value;
}
}
我目前得到的结果基本上留给我:
usertagslug[jishstaff] usertagname[JishStaff]
与预期的
输出相符usertagslug[jishstaff] usertagname[JishStaff] lol try do a usertagslug[jishstaff] usertagname[JishStaff]
我只是不确定如何对我的正则表达式更加严格。
谢谢大家。
答案 0 :(得分:1)
通过用空字符串替换<\/?span[^>]*>
的所有出现来删除所有span元素。
之后你将被留下
usertagslug[jishstaff]
usertagname[JishStaff]
lol try do a
usertagslug[jishstaff] usertagname[JishStaff]
然后在每一行上执行修剪,并用空格替换所有\n
。