回答
可以使用參數擴展:
${something//[^[:alpha:]]/}
這裏所有的非字母字符變量something
的([^[:alpha:]]
)將由無即替換將被省略。
例子:
$ str='sl89wS Gjf-_32b'
$ echo "${str//[^[:alpha:]]/}"
slwSGjfb
的基本想法是,以取代所有不信:
[^a-Z]
通過什麼:
$ s='sl8zZ9wS Gjf-_32b'
$ echo "${s//[^a-Z]}"
slzZwSGjfb
,對於一個作品LC_ALL=en_US.UTF-8
。
$ s='sl8zZ9wS Gjf-_3éëì2b'
$ echo "${s//[^a-Z]}"
slzZwSGjféëìb
或整理順序變化:
$ LC_COLLATE=C
$ echo "${s//[^a-z]}"
slzwjfb ### Missing upper chars.
在這些情況下,更可靠的列表。然而,如果所使用的字符包括重音字形(假定重音的字形不期望的),該想法失敗需要字符:
$ s='sl8zZ9wS Gjf-_3éëì2b'
$ echo "${s//[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]}"
slzZwSGjfb
最終可靠命令行應該是:
$ s="$(LC_ALL=C eval printf '%s' "${s//[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]}")"
或更短(如果該排序順序是ASCII字節值):
$ s="$(LC_ALL=C eval printf '%s' "${s//[^a-zA-Z]}")"
以及將所述轉換到上字符:
當然$ printf '%s\n' "${s^^}"
SLZZWSGJFB
所有bash下,。
或''[^ a-zA-Z]'以避免去除大寫字母。 (或者在刪除字符之前使用你的'$ {s ^^}',但是如果需要的話,這會損失保存的情況) –
@ DavidC.Rankin'[^ a-zA_Z]'只有在排序順序是'ASCII字節值',通常不是。假設你的意思是:回答編輯。 –
好點。一些老學生看不到其他的東西。 –
- 1. 如何從字符串中刪除非字母字符?
- 2. 從字符串中刪除非字母數字字符
- 3. 如何從Java中的字符串中刪除所有非字母字符?
- 4. 如何從Unix shell腳本的字符串中刪除字符?
- 5. 如何從字符串中刪除非國際字母數字字符?
- 6. 如何從字符串中刪除非文本字符PHP
- 7. Python從字符串中刪除字母
- 8. 從字符串中刪除字母
- 9. 從字符串中刪除字母
- 10. 從字符串中刪除所有非字母,非數字字符?
- 11. 如何從字符串中刪除所有字母字符?
- 12. 如何從字符串[]中刪除沒有字母字符?
- 13. R刪除字符串中的非字母數字符號
- 14. 如何從數組中的字符串中刪除字母?
- 15. 如何清除字符串中連續的非字母字符?
- 16. 如何從PHP中的字符串中刪除所有非字母數字和非空格字符?
- 17. 從字符串末尾刪除多個非字母字符
- 18. 如何從單詞中刪除非字母字符 - 結束
- 19. Windows腳本字符串操作來刪除字母字符
- 20. 如何從SQL Server中的字符串中去除所有非字母字符?
- 21. 從字符串中刪除特殊字符在Groovy腳本中
- 22. 刪除字符串中的字母
- 23. 從lua字符串中刪除所有非字母數字字符
- 24. 正則表達式從UTF8字符串中刪除非字母數字字符
- 25. 如何刪除列中的非字母數字字符?
- 26. 如何從字符串中刪除非UTF-8字符?
- 27. PHP如何從字符串中刪除非語言字符?
- 28. 從命令行中刪除VBScript中的非字母字符
- 29. 如何從字符串的開頭刪除非字母字符直到第一個字母字符?
- 30. 如何從字符串中刪除所有字母
您忘記發佈您的代碼。 StackOverflow是關於幫助人們修復他們的代碼。這不是免費的編碼服務。任何代碼都比沒有代碼更好。祝你好運。 – shellter