REGEX:打破大写字母

时间:2013-01-16 09:02:31

标签: php

你好在正则表达式中需要帮助我用它来分割像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不打破appart,现在没时间研究正则表达式。

2 个答案:

答案 0 :(得分: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)

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

答案 1 :(得分:-1)

没时间研究正则表达式......所以,你基本上要求我们为你解决问题。

花了大约5秒时间计算出来,30秒钟将其写下来,还有5秒钟来复制并粘贴它:

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

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