2015-02-27 2 views
0

Я работаю над siebel CRM. У меня проблемы с пространством в моем регулярном выражении.Вопрос SSN в SIEBEL

У меня есть номера SSN в этих форматах

123 456 789 
123-456-789 
123 45 6789 

мне нужно Dispaly мой SSN подобно . Моя регулярное выражение выглядит

([\s.:])(?!000)(?!666)(?!9[0-9][0-9])\d{3}[- ]?(?!00)\d{2}[- ]?(?!0000)\d{4})([\s.:]) | 
([\s.:])(?!000)(?!666)(?!9[0-9][0-9])\d{3}[- ]?(?!00)\d{3}[- ]?(?!00)\d{3})([\s.:]). 

Как я могу удалить все пробелы в приведенном выше выражении и отобразить формат, как я упоминал выше?

ответ

0

Похоже, в вашем RegEx есть синтаксические ошибки. Есть пара непревзойденных скобок, на (?!0000)\d{4}) на первом разделе, последняя скобка не имеет себе равных.

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

([\s.:])((?!000)(?!666)(?!9[0-9]{2})\d{3})[- ]?((?!00)\d{2,3})[- ]?((?!00)\d{3,4})([\s.:]) 

Это будет соответствовать следующие строки:

123-12-1234 
123 456 789 
123-456-789 
123 45 6789 

Но не будет соответствовать следующим:

666-45-1234 
abc-12-1232 
123-00-1233 
123-224-0011 
123 224 0000 

Есть несколько групп захвата здесь:

  1. Соответствует любому персонажу (вы можете изменить это).
  2. Совпадает с первым трехзначным числом.
  3. Соответствует второму, двух или трехзначному номеру.
  4. Соответствует третьему, трех или четырехзначному номеру.
  5. Соответствует любому символу (вы можете изменить это).

Вы должны иметь возможность восстановить SSN в том формате, в котором вы нуждаетесь, в результате этого RegEx.