[英]Inserting a tab or space between specific characters based on character and character length
我需要在數字和字母之間插入一個制表符:
示例輸入: 44World Cup
輸出: 44 World Cup
我遇到的問題是,我還需要在數字旁邊指定單詞的長度。
例如:如果單詞th
或TH
,或者數字旁邊的字母或單詞的長度等於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.