簡體   English   中英

根據字符和字符長度在特定字符之間插入制表符或空格

[英]Inserting a tab or space between specific characters based on character and character length

我需要在數字和字母之間插入一個制表符:

示例輸入: 44World Cup 輸出: 44 World Cup我遇到的問題是,我還需要在數字旁邊指定單詞的長度。

例如:如果單詞thTH ,或者數字旁邊的字母或單詞的長度等於2,則我不想插入空格。

示例:我住在44th Avenue不會受到影響,但是,我住在第44Avenue的將變為。 我住在44 Avenue

到目前為止,我所擁有的只是這個正則表達式,接近但不是很有效:

public string AddSpace(string input)
{
 return Regex.Replace(input, 
"(?<=[0-9])(?=[A-Za-z])|(?<=[A-Za-z])(?=[0-9])", " ");
}

上面的代碼在任何數字字母/單詞序列之間插入一個制表符。

您的問題沒有簡單的解決方案。 由於在許多情況下您將同時具有字母和數字,例如“ 1st”,“ 2nd”,“ 3rd”等。

唯一的方法是查找每種情況並將其威脅為一個詞。

您可以創建一個Dictionary<int,string>對象來映射帶有允許的后綴的數字。 例如,(1,“ st”),(2,“ nd”),(3,“ rd”)等。

現在,只要您在字符串中遇到一組數字,就取最后一個數字和該數字之后的前兩個字符,並對照字典確定是否應插入空格/制表符。

我認為這是一個復雜的邏輯,不能通過正則表達式來完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM