2011-05-17 23 views
1

我想幫助解析某個字符串的名稱。我想要取出字符串並將其刪除,以便只有第一個名字會出現在字符串中。解析和刪除perl中的字符串部分

假設我有一個名字像這樣

Mr. John Doe 
John Smith. 

在這兩種情況下,我想只得到字符串的第一個名字,並刪除所有其它字符。


編輯:

所以對於兩個字符串,他們被解析後會在對他們有John

我想知道是否有辦法用正則表達式來做到這一點的問題。

+1

當你有像這樣的字符串......「史密斯約翰」,「約瑟夫約瑟夫」或「詹姆斯博士」時會發生什麼?問題是,在你的問題中,你沒有描述輸入字符串格式的任何參數,或者你想要得到輸出字符串的任何規則。 – Sparky 2011-05-17 18:54:30

+0

該字符串將始終有名和姓以及一些標題,如「Mr.」,「Mrs.」或「Dr.」 – 2011-05-17 19:00:31

+0

在您的示例中,「John Smith」沒有標題。 – Sparky 2011-05-17 19:02:23

回答

1

使用split將名稱的各部分放入數組中。

檢查第一個元素,看它是否是一個標題(「先生,女士,博士,或錯過」)。如果沒有,拿它。否則,取下一個元素並停止。

編輯:這是OP的原始問題的答案。編號2:請解釋任何反對票。如上所述,OP在後改變了他的問題我回答了。

+0

這是一個很好的解決方案,但它需要額外的循環。我想知道是否有辦法做到這一點與正則表達式 – 2011-05-17 19:20:57

+0

@Steffan哈里斯:你沒有在你的原始問題中這樣說!然後您對它進行了編輯,而不會將該額外要求視爲編輯。 – Sparky 2011-05-17 19:23:48

+0

@Steffan Harris:這會比正則表達式更快!很多! – 2011-05-17 19:26:46