【问题标题】:PHP - Using preg_replace() Only Specific Part Of StringPHP - 仅使用 preg_replace() 字符串的特定部分
【发布时间】:2016-06-26 11:37:48
【问题描述】:

我有一个字符串,例如:

-Website URL***Image URL

我想用preg_replace()***Image URL 替换为空字符串,这里看起来像字符串:

-Website URL

preg_replace() 总是有问题。

请帮帮我!谢谢!!!!

【问题讨论】:

  • 你想得到3星之前的子字符串吗?
  • @splash58 是的,我愿意
  • list($res,) = explode('***', '-Website URL***Image URL', 2); echo $res;
  • @chris85 我不知道该写什么正则表达式。我想在 3 次开始后子串
  • @splash58 非常感谢您,您可以将网站 URL 前的字符 (-) 替换为空字符串吗?谢谢!

标签: php regex replace preg-replace


【解决方案1】:

在字符串开头的减号之后取所有,直到 3 星

$res = preg_replace('/^-?(.+)\*{3}.+$/', '\1', '-Website URL***Image URL');
echo $res;

【讨论】:

  • 你能帮我用什么 preg_replace 上面的反向字符串吗?意思是用空字符串替换 -Website URL*** 并且只显示图像 URL 字符串。谢谢
  • $res = preg_replace('/^.+\*{3}/', '', '-Website URL***Image URL');
  • 如何解决?请告诉我
  • @Cool 描述什么不起作用?不知道你在这里的实际问题是什么,你的描述和这个答案不匹配。
【解决方案2】:

查找 3 *s 的正则表达式然后其他所有内容(不包括新行)将是:

/\*{3}.*/

正则表达式演示:https://regex101.com/r/nX9dC7/1

* 需要转义,否则它是正则表达式中的 quantifier{} 允许设置前一个字符/组的编号(或范围)。 . 是任何字符(不包括新行),* 表示前一个字符/组出现零次或多次。

PHP 用法:

echo preg_replace('/\*{3}.*/', '', '-Website URL***Image URL');

PHP 演示:https://eval.in/595726

【讨论】:

  • 谢谢。你能再帮帮我吗?这是用空字符串替换网站 URL 之前的字符 (-)?
  • replace character 是什么意思?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-07
  • 1970-01-01
  • 1970-01-01
  • 2016-12-16
  • 2014-07-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多