我有一个显示名称字段,我必须使用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