короткое регулярное выражение - PullRequest
0 голосов
/ 28 июля 2010

Я пытаюсь разделить следующее: 2010-07-30 10: 10: 50

, и я хотел бы ТОЛЬКО получить:

2010

07

30

обычно только с датой, вы используете regex с / - /

однако теперь я хотел бы что-то столь же простое, но теперь я получаю

2010

07

30 10: 10: 50

как мне получить эту последнюю часть + пробел?

Большое вам спасибо!

ps, сейчас мне нужно это в PHP, но позже мне также нужно реализовать это в JAVA

Ответы [ 4 ]

0 голосов
/ 28 июля 2010

Использовать разделение на [-]:

В Perl я думаю, что легко перенести на другой язык.

my $s =q!2010-07-30 10:10:50!;
my @l = split/[- ]/,$s;
$" = $/;
print "@l";

выход:

2010
07
30 
10:10:50
0 голосов
/ 28 июля 2010

Как сказал Марк, это зависит от языка программирования: я могу думать о awk следующим образом:

echo "2010-07-30 10:10:50"|awk -F'-' '{split($3,a," ");print $1,$2,a[1]}'
0 голосов
/ 28 июля 2010

Ну, я не знаю, какой язык вы используете, но вы можете использовать приведенное ниже регулярное выражение, чтобы соответствовать интересующим вас числам, как вы описали

\b\d+\b(?=(\s|-)) 

Что это эффективно делает, так это находит числа, заканчивающиеся либо пробелом, либо гипсом

0 голосов
/ 28 июля 2010

Ответ, который был только что удален, работал как шарм, / [-] /

он добился цели в PHP и, вероятно, также в JAVA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...