我試圖採取一個數字塊,可能會或可能不會有分隔符並以標準格式返回它們。使用SSN爲例:如何匹配字符或沒有使用正則表達式
ex1="An example 123-45-6789"
ex2="123.45.6789 some more things"
ex3="123456789 thank you Ruby may I have another"
都應該進入返回「123-45-6789」的方法基本上,任何事情(包括什麼都沒有),除了數字或字母應以XXX-XX-返回SSN XXXX格式。正在傾倒的部分是通過正則表達式來識別不存在的方式。
我有什麼在確定我的SSN至今:
def format_ssns(string)
string.scan(/\d{3}[^0-9a-zA-Z]{1}\d{2}[^0-9a-zA-Z]{1}\d{4}/).to_a
end
它似乎一切我想到時候有什麼除了工作還是工作。 「123456789」不起作用。在這種情況下,我可以使用正則表達式來識別缺少任何東西嗎?
'{1}'完全是多餘的,'{0,1}'與'?'完全相同,這可能是您的問題的答案。 – tripleee
實際上,如果您有'{1}',您可能也指'''。 – tripleee