我有一個顯示名稱字段,我必須使用Ruby正則表達式進行驗證。除了特殊字符(如*()!@#$%^ & ....)之外,我們必須匹配法語,阿拉伯語,中文,德語,西班牙語等所有語言字符....我被困在如何匹配那些非 - 拉丁字符。如何匹配所有語言的字符,但ruby中的特殊字符
3
A
回答
3
有兩種可能性:
創建包含每個符號否定字符類的正則表達式,你不要匹配:
if (name ~= /[^*[email protected]%\^]/) # add everything and if this matches you are good
這種解決方案可能是不可行,因爲即使你只是包含最常見的符號,你也必須插入大量的符號。
使用Oniguruma(參見:Oniguruma for Ruby main)。這支持Unicode及其屬性;
if (name ~= /[\pL\pM]/)
你可以看到這些都是關於這裏:在這種情況下,所有的字母可以使用匹配Unicode Regular Expressions
1
從Ruby 1.9的開始,String
和Regex
類是unicode的識別。您可以放心地使用正則表達式字字符選擇\w
"可口可樂!?!".gsub /\w/, 'Ha'
#=> "HaHaHaHa!?!"
0
在紅寶石> 1.9.1(可能更早),可以使用\p{L}
以匹配所有語言的單詞字符(不oniguruma創業板在前面的回答中所述) 。
相關問題
- 1. 如何匹配所有語言字符,如英語,希臘語,中文除了特殊字符
- 2. 如何匹配Unicode特殊字符而不匹配特殊字符
- 3. 如何匹配除逗號以外的所有特殊字符
- 4. 刪除字符串中的所有特殊字符 - ruby
- 5. 如何在java中爲所有特殊字符(',%,\,:,{,})轉義所有特殊字符
- 6. 如何匹配特殊字符?
- 7. 如何過濾特殊字符但不是所有特殊字符?
- 8. 用於語言的HTML特殊字符
- 9. 如何逃避字符串中的所有特殊字符?
- 10. 如何在具有直接特殊字符的行中匹配字符串?
- 11. 刪除網址中的特殊字符,但不刪除其他語言字符
- 12. Ruby 1.9的特殊字符
- 13. Perl的匹配特殊字符
- 14. 匹配可選的特殊字符
- 15. jQuery的匹配URL特殊字符
- 16. 與特殊字符匹配的詞
- 17. 匹配字符,數字和特殊字符的字符串中的模式
- 18. 匹配JAVA中特殊字符之間的字符串
- 19. 在R中匹配特殊字符
- 20. 如何刪除所有特殊字符
- 21. 如何匹配排除特定字符的序列中的所有字符?
- 22. 如何逃避M語言中的特殊字符(Power BI)?
- 23. 匹配特殊字符之間的最後一個字符串
- 24. 與特殊字符匹配的正則表達式字符
- 25. 解析與常規字符匹配的特殊字符
- 26. 正則表達式:匹配所有特殊字符,而不是*
- 27. 將RegEx與所有特殊字符匹配
- 28. 如何爲WTForms字段使用特殊字符(其他語言)?
- 29. 從Bash中的字符串中刪除所有特殊字符
- 30. 從R中的字符串中刪除所有特殊字符?
也許如果你提供了一些字符串,顯示樣本輸入和樣本輸出,人們可以幫助更多。你的問題很不清楚。 – Geo
你是指所有字母的所有字母? – BoltClock
@Bolt這實際上是可行的,如果你有正確的工具 – NullUserException