1

私はこのサンプル文字列を持っていて、日、月、時間、分、(午前/午後) を正規表現で分解したい:

SunDec 16 00:00am

これを使用して:

(\w+)\s+(\w+)\s+(\d+)\:(\d+)(..)

しかし、それは私に与えます:

Array
(
    [0] => SunDec 16 00:00am
    [1] => SunDec
    [2] => 16
    [3] => 00
    [4] => 00
    [5] => am
)

私はそれを理解することができません..SubDecを2つに分解できますか?

4

3 に答える 3

2

これを試すことができます:

$str = 'SunDec 16 00:00am';

preg_match('/([A-Z]{1}\w+)([A-Z]{1}\w+)\s+(\w+)\s+(\d+):(\d+)(..)/', $str, $ret);

print_r($ret);
于 2012-12-20T13:31:58.810 に答える
1

文字列が常にその例に従う場合は、次のように使用できます。

$string = 'SunDec 16 00:00am';
$pattern = '!([a-zA-Z]{3})([a-zA-Z]{3})\s+(\w+)\s+(\d+)\:(\d+)(..)!';
preg_match($pattern, $string, $chunks);
print_r($chunks);

どの出力:

Array
(
    [0] => SunDec 16 00:00am
    [1] => Sun
    [2] => Dec
    [3] => 16
    [4] => 00
    [5] => 00
    [6] => am
)

少し小さめのこのパターンも使用できます

'!([a-z]{3})([a-z]{3})\s+(\w+)\s+(\d+)\:(\d+)(..)!i'
于 2012-12-20T13:26:56.650 に答える
1

この正規表現を試すことができます。これが役立つかもしれません

([A-Z][a-z]+)+\s(\d+)?\s?(\d+)\:(\d+)([a-z]+)
于 2012-12-20T13:31:44.240 に答える