Szukasz czystszego rozwiązania RegEx do dopasowywania różnych formatów SSN

Aby zobaczyć, czego chcę, sprawdź wyrażenie regularne, którego używam. Spróbuję to wyjaśnić po angielsku. Chcę się dopasować4444 lub444444444 lub444-44-4444. Oto co mam i robi to, co chcę.

<code>^[0-9]{9}$|^[0-9]{4}$|^[0-9]{3}-[0-9]{2}-[0-9]{4}$
</code>

Czy można to zrobić bez OR? Myślałem o tym

<code>([0-9]{3}-?[0-9]{2}-?)?[0-9]{4}
</code>

ale to pozwala222-222222 które chcę wykluczyć.

questionAnswers(2)

yourAnswerToTheQuestion