Регулярное выражение было бы самым общим способом, но, в зависимости от содержания по датам, может быть трудно получить право. Это потенциально будет очень чистым, но может быть довольно уродливым. С положительной стороны вы можете гарантировать, что это всегда будет всего лишь несколько строк кода, и это легко изменить.
Если ваши даты всегда указаны под конкретными индексами, вы можете использовать substring
, но если (например) вы могли бы иметь Now 10 days later...
, тогда это не будет работать очень хорошо.
Split
будет работать, если вы знаете, что каждая дата всегда является n-м словом в строке.
РЕДАКТИРОВАТЬ: Просто видел, что ваши комментарии о тексте и формате всегда совпадают. Я бы использовал split
или регулярное выражение, например Hello world. Random date1 is (\d\d/\d\d/\d\d\d\d). Now \d+ days later is (\d\d/\d\d/\d\d\d\d)
. (Я знаю, вы могли бы сделать это более кратким, но это сработает. Думаю.)
EDIT2: более кратким регулярным выражением после немного больше мысли: .*?(\d{2}/\d{2}/\d{4}).*?(\d{2}/\d{2}/\d{4})
. Это позволит вам изменить окружающий текст, не обновляя регулярное выражение.
Являются даты всегда в том же формате, или они могут различаться? – cdhowie 2010-12-06 21:13:46
Является ли текст (кроме дат) случайным или всегда одинаковым? – ncakmak 2010-12-06 21:14:43
Текст тот же. Формат тот же ... date.ToShortDateString() – MrM 2010-12-06 21:18:11