【问题标题】:Delete all words if they contain a comma with preg_replace regex如果它们包含带有 preg_replace 正则表达式的逗号,则删除所有单词
【发布时间】:2020-07-25 15:42:34
【问题描述】:

我需要一个简单的正则表达式,如果它包含逗号,则删除所有术语。

例子:

输入:cat dog duck 输出:cat dog duck

输入:cat, dog, duck 输出:

【问题讨论】:

  • 你试过什么?什么没用?你得到了什么?你期待什么?什么不适用于您的代码,它在哪里?
  • 还没有,我还没有找到这样的正则表达式
  • 试一试:find:^\w+(?:, \w+)+$replace:NOTHING
  • 看起来您正在寻找创建一个正则表达式,但不知道从哪里开始。请查看Reference - What does this regex mean 资源,它有很多提示。此外,请参阅 Learning Regular Expressions 帖子了解一些基本的正则表达式信息。一旦您准备好表达方式,但解决方案仍然存在问题,请使用最新的详细信息编辑问题,我们很乐意帮助您解决问题。
  • 是的,谢谢它有效,但前提是该短语由一个单词组成。如果它由几个单词组成,则不起作用。我忘了说这个,对不起。所以,cat dog, cat dog duck, cat dog duck parrot, 等等。准确地说,它应该适用于多词列表。

标签: regex preg-replace


【解决方案1】:

你可以使用:

$tests = [
    'cat dog duck',
    'cat, dog, duck',
    'cat dog, cat dog duck, cat dog duck parrot',
];

foreach ($tests as $test) {
    echo preg_replace('/^[\w\h]+(?:, [\w\h]+)+$/', '', $test);
}

输出:

cat dog duck

Demo & explanation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多