2012-04-21 5 views
0

Учитывая метку времени в ISO 8601 Формат ниже:Regex для удаления десятичные значения

2012-04-21T01:56:00.581550 

, что регулярное выражение будет удалить десятичную точку и миллисекунды точность? Другими словами, регулярное выражение, которое относится к вышесказанному и возвращает следующее:

2012-04-21T01:56:00 

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

ответ

3

Если вы хотите использовать регулярное выражение, вы можете использовать "[.][0-9]+$" и заменить его пустой строкой "". Легче найти конечный '.' и отрубить строку по ее индексу. В C#, что бы

myStr = myStr.Substring(0, myStr.LastIndexOf('.')-1); 
+0

Я согласен, что регулярное выражение является излишеством здесь, и даже вероятно, склонны к ошибкам. –

+0

Спасибо, есть способ разделить строку на основе разделителя на используемом мной языке, чтобы, по-видимому, был лучший способ. – Skoota

0
s/\..*$// 

Похоже, что вы можете предположить, что будет только одна точка. Вышеприведенное выражение sed находит точку, затем заменяет все после этой точки вверх до новой строки с ничем.

Без СЭД: заменить \..*$ с пустой строкой ""

\. буквальный период (должен избежать его, потому что . означает любой символ)

.* означает любые символы

$ означает конец строки

1

Это регулярное выражение ^[\w\-:]+ будет только m добираться до периода и исключать его. Вы можете использовать это для найти часть времени, которое вы хотите.

  • ^ - начало строки.
  • \w любое слово.
  • \- включает в себя дефис.
  • : включает в себя двоеточие.
  • Данные, размещенные в [], соответствуют только этим символам.
  • + означает соответствие одному или нескольким экземплярам этих символов.

С периода (.) не включено, регулярное выражение перестанет соответствовать, когда оно дойдет до него.

1

Почему вы хотите использовать регулярное выражение? используют строковые операции

в Python:

>>> "2012-04-21T01:56:00.581550".split(".") 
['2012-04-21T01:56:00', '581550'] 
>>> "2012-04-21T01:56:00.581550".split(".")[0] 
'2012-04-21T01:56:00' 
Смежные вопросы