【问题标题】:How to match alphanumeric and symbols using PHP?如何使用 PHP 匹配字母数字和符号?
【发布时间】:2016-07-14 13:24:05
【问题描述】:

我正在处理存储在变量 $title 中的 UTF8 编码文本内容。

使用preg_replace,如果$title 字符串以:结尾,我如何附加一个额外的空格:

  • 大写/小写字符
  • 数字
  • 符号,例如。 ?!

【问题讨论】:

  • 从技术上讲,您想在每个字符串的末尾添加一个空格吗?
  • 定义 symbol ... utf8 有很多选项可供选择。
  • 你需要的是/u修饰符。其余的不清楚。
  • 并非一切。在我的情况下,$title 可能包含其他亚洲语言,例如。中文、日文、韩文。如果它以这些语言结尾,我不需要附加空格。只有条件匹配给定的情况。
  • 嘿 - 抱歉,我过早地关闭了括号 - 恐怕并没有认真考虑它,我想在我写出来之前有人会提供正确的答案。 /^(.*[\w?!])$/

标签: php regex preg-replace


【解决方案1】:

这应该可以解决问题:

preg_replace('/^(.*[\w?!])$/', "$1 ", $string);

本质上它的作用是如果字符串以您不需要的字符之一结尾,它会附加一个空格。

如果字符串与模式不匹配,则 preg_replace() 返回原始字符串 - 所以你仍然可以。

如果您需要扩展不需要的结尾列表,您可以将它们添加到字符块[\w?!]

【讨论】:

    【解决方案2】:

    在行尾之前使用积极的向后看。
    并用空格代替。

    $title = preg_replace('/(?<=[A-Za-z0-9?!])$/',' ', $title);
    

    试试here

    【讨论】:

    • 它给了我一个警告:preg_replace(): Unknown modifier '$'
    • 最初我没有用正斜杠括起来正则表达式。现在可以了。
    【解决方案3】:

    您可能想试试下面的模式匹配,看看是否适合您。

    <?php
        // THE REGEX BELOW MATCHES THE ENDING LOWER & UPPER-CASED CHARACTERS, DIGITS
        // AND SYMBOLS LIKE "?" AND "!" AND EVEN A DOT "."
        // HOWEVER YOU CAN IMPROVISE ON YOUR OWN
        $rxPattern  = "#([\!\?a-zA-Z0-9\.])$#"; 
        $title      = "What is your name?";
        var_dump($title);
    
        // AND HERE, YOU APPEND A SINGLE SPACE AFTER THE MATCHED STRING
        $title      = preg_replace($rxPattern, "$1 ", $title);
        var_dump($title);
    
       // THE FIRST var_dump($title) PRODUCES:
       // 'What is your name?' (length=18)
    
       // AND THE SECOND var_dump($title) PRODUCES
       // 'What is your name? ' (length=19) <== NOTICE THE LENGTH FROM ADDED SPACE.
    

    你可以测试一下HERE

    干杯...

    【讨论】:

      【解决方案4】:

      你需要

      $title=preg_replace("/.*[\w?!]$/", "\\0 ", $title);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多