我試圖在C#中標準化某些作者姓名的格式。棘手的是那些使用首字母縮寫的人。例如流行的哈利波特系列的作者可能是其中的任何一種:如何用相同的字符替換一組單個字符和空白區域,但沒有空白區域
- JK羅琳
- J.K.羅琳
- J·K·羅琳
- Ĵķ羅琳
我想所有的這些規範爲 「JK羅琳」。
我也試圖解決像JRR托爾金這樣的名字,其中有三個首字母而不是兩個。
經過簡單替換「。」後,我剩下了「J K Rowling」或「J R R Tolkien」。我想將它們轉換成「JK羅琳」和「JRR托爾金」。
所以邏輯是: 捕獲一個單一的字符,後面跟着任意數量的空格,然後跟着但不包括另一個單個字符。從捕獲中刪除空白區域,並用清理後的字符串替換捕獲區域。
下面是一些樣本:
- 托爾金 - >托爾金
- EL詹姆斯 - > EL詹姆斯
- 弗朗西斯·斯科特·菲茨傑拉德 - >無變化
我已經到了這個地步,我能夠捕捉到我需要的字符:
(\b[a-zA-Z]\b\s*)*
https://www.debuggex.com/r/OLnu3YvvjIumGbQ1
但我不知道該從哪裏去,以便用沒有任何空格的版本替換捕獲。
現在它應該.. –