【问题标题】:How do I remove quotes from a string?如何从字符串中删除引号?
【发布时间】:2023-12-12 08:37:01
【问题描述】:
$string = "my text has \"double quotes\" and 'single quotes'";

如何从$string 中删除所有类型的引号(不同语言)?

【问题讨论】:

  • $string 中没有引号你知道吗?
  • 用 htmlentities 或 urlencoded 表示的引号呢?
  • 您是在谈论自然语言引号(例如,„)还是编程语言引号(例如 /*...*/)?
  • @Chris - 现在就做! :)
  • 如果你只是从头到尾删除它们,那么trim($str, "\"\'")

标签: php quotes


【解决方案1】:

你可以在一行中做同样的事情:

str_replace(['"',"'"], "", $text)

【讨论】:

    【解决方案2】:
    str_replace('"', "", $string);
    str_replace("'", "", $string);
    

    我假设你的意思是引号?

    否则,请使用一些正则表达式,这将适用于 html 引号,例如:

    preg_replace("/<!--.*?-->/", "", $string);
    

    C 风格的引号:

    preg_replace("/\/\/.*?\n/", "\n", $string);
    

    CSS 风格的引号:

    preg_replace("/\/*.*?\*\//", "", $string);
    

    bash 风格的引号:

    preg-replace("/#.*?\n/", "\n", $string);
    

    等等等等……

    【讨论】:

    • 用正则表达式正确解析 HTML 是不可能的。永远不要尝试这样做。
    • 我同意,但也无法正确解析每一种编程语言...
    • str_replace 也接受数组,所以 str_replace(array('"', "'"), '', $string) 也可以。顺便说一句,你是说 HTML 是一种编程语言吗? ;-)
    • 不,当然不是,但仍然不可能处理来自每种编程语言的 cmets ;)
    • 你所有的正则表达式都被破坏了。您没有指定分隔符,并且也省略了转义。
    最近更新 更多