2013-03-28 2 views
0

У меня есть строки с неформатированными номерами телефонов, есть ли способ их найти и отформатировать номер и сохранить?Найдите номер телефона в строке и формате

Примеры строк У меня есть это

Name: Tippu  
Phone: 408.273.3939 
Email: [email protected] 

другой образец

Contact Tippu at (408) 363 2323  

В этих примерах мне нужно найти номер телефона и изменить его в формате NNN-NNN-NNNN. Данные находятся в SQL Server, и я использую C#.

Благодаря

+0

Если они хранятся в базе данных, почему бы вам не использовать столбец, чтобы получить их? – Schaliasos

+0

Вся строка хранится в одном столбце – Tippu

+0

Любой номер телефона, или вы принимаете только Северную Америку? – Richard

ответ

1

Наверное, не самый лучший ... Но это что-то вроде того, что я хотел бы сделать, если бы меня. Возможно, это поможет. Во-первых, я полагаю, что последние цифры в ваших строк представляют собой номер телефона:

x = <your string>.replace(/[^0-9]/g,''); 
x = x.substring(x.length-10); 
x = x.substring(0,3) +'-'+ x.substring(3,6) + '-' + x.substring(6); 
1

Предполагая, что ваш телефон находится в этом формате - «408.273.3939» , то это будет полезно для вас

var stringText = "408.273.3939"; 
      var phoneArr = stringText.Split('.'); 
      String.Format("%s-%s-%s", phoneArr[0], phoneArr[1], phoneArr[2]); 

Кроме того, ваш вопрос также не ясен для меня.

2

Вы можете использовать следующий псевдокод.

string.Replace(/\(?(\d{3})[)(-.\s]*(\d{3})[)-.\s]*(\d{4})/, "$1-$2-$3") 

Он заменит оба предоставленные примеры в формате NNN-NNN-NNNN.

Позвольте мне немного пояснить вам регулярное выражение.
\(? в начале выглядит, если строка начинается с кронштейна
(\d{3}) ищет три числовые цифры и делает группу захвата. [)(-.\s]* ищет )(-. и a space. * обязательно позаботится о случае, когда за скобкой следует пробел.
\d{4} ищет 4 цифры.
Здесь $1$2 и $3 - группы захвата. Вы можете использовать их в соответствии с вашим языком.

Я считаю, вы, вероятно, можете использовать функцию Regex.Replace() в C#

+0

Я согласен, это было просто помочь ему получить некоторый намек на то, как решить проблему. –

Смежные вопросы