-1

你好,在正则表达式中需要帮助我用它来分割带有大写字母的字符串,比如 OldMcDonald preg_split('/(?=[A-Z])/', $data, -1, PREG_SPLIT_NO_EMPTY);

output 
[0] => Old 
[1] => Mc 
[2] => Donald 

现在我需要拆分像MWTTH这样的字符串我需要告诉正则表达式带有字母H的T是一个单词我如何在我的正则表达式中应用?

need the output: 
[0] => M 
[1] => w 
[2] => T 
[3] => TH

当我尝试

$array = preg_split('/(?=[A-Z][TH])/', $data, -1, PREG_SPLIT_NO_EMPTY);

输出是

Array
(
    [0] => MTW
    [1] => F
    [2] => TH
)  

MTH不会分裂,现在没有时间学习正则表达式。

4

2 回答 2

0

我应该进一步研究一下,我可以得到它,反正我已经发现我用过:

$data = 'MTWFTH';
$array = preg_split('/(?=TH|M|T|W|F|S)/', $data, -1, PREG_SPLIT_NO_EMPTY);

输出

array (size=5)
  0 => string 'M' (length=1)
  1 => string 'T' (length=1)
  2 => string 'W' (length=1)
  3 => string 'F' (length=1)
  4 => string 'TH' (length=2)

虽然这仅适用于像我这样的预定义数据。

于 2013-01-16T10:42:36.997 回答
-1

没时间学习正则表达式...所以,您基本上是在要求我们为您找出问题所在。

大概花了 5 秒才弄明白,30 秒写下来,再 5 秒复制粘贴:

$string = 'OldMcMWTTHDonald';
preg_match_all('/(?:TH|[A-Z][a-z]*)/', $string, $matches);
var_dump($matches);

你只是浪费了我生命中的 40 秒。

于 2013-01-16T09:15:22.500 回答