【问题标题】:which regular expression should i use?我应该使用哪个正则表达式?
【发布时间】:2011-07-29 10:51:00
【问题描述】:

如果这是我的字符串:“blablabla (blablabla)”。 我应该使用哪个正则表达式来拆分字符串以使我得到返回:

  1. "blablabla"
  2. "(blablabla)"

顺便说一句,我想使用函数 mb_split。

编辑 字符串也可以是“blablabla blablabla blablabla (blablabla)”。 因此,explode() 将无法工作。

EDIT,这是我现在使用的:

例如,$name = "blabla blabla blabla blabla (blabla)";

$name = explode(' ', $name);
$last = array_pop($name);
$sentence = null; 
foreach ($name as $names) {
$sentence .= $names.' ';
}
$sentence = mb_substr($title, 0, -1, 'UTF-8');

【问题讨论】:

  • 你尝试了什么? plzsendtehcodez 问题不是我们在这个网站上想要的。
  • 你说explode不行。但是你试过了吗?文档并没有说它只会分裂一次,但它会在找到匹配的任何地方分裂。 lv.php.net/manual/en/function.explode.php
  • 我的意思是,然后我有一个包含许多不同键的数组。所以我不知道如何获得我想要的值。

标签: php regex split


【解决方案1】:

实际上,您不需要正则表达式来完成用空格分割两个单词这样简单的任务。请改用explode()

$string = "blablabla (blablaba)";
explode(" ", $string);

【讨论】:

    【解决方案2】:

    根本不用正则表达式,就用explode

    $mystring = "blablabla (blablaba)";
    $mywords = explode(" ", $mystring);
    

    你正在做的只是寻找一个空间!

    【讨论】:

      【解决方案3】:

      如果您要匹配的空格后跟一个 '(',则要拆分的模式可以是:

      \s(?=\()
      

      【讨论】:

      • 感谢您回答我的问题。
      【解决方案4】:
      explode(" ", $string);
      

      你不需要写正则表达式。

      爆炸

      第一个参数将是您想要将字符串导出到数组中的参数。第二个参数必须是字符串..

      【讨论】:

        【解决方案5】:

        我会使用explode,因为这里不需要正则表达式。如果您仍然想要 mb_split,您可以在假定为空格的任何内容(换行符、换行符、空格、制表符等)处拆分:mb_split("\s", "hello world")

        看看docs。 (我实际上在这里粘贴了示例:))

        【讨论】:

          猜你喜欢
          • 2014-12-10
          • 1970-01-01
          • 1970-01-01
          • 2021-12-06
          • 1970-01-01
          • 1970-01-01
          • 2016-12-17
          • 1970-01-01
          • 2018-05-18
          相关资源
          最近更新 更多