1
A
回答
5
有一个叫alpha-char-p
一个方便的标准功能,做你问什么。
CL-USER(1): (alpha-char-p #\a)
T
CL-USER(2): (alpha-char-p #\Γ)
T
CL-USER(3): (alpha-char-p #\α)
T
CL-USER(4): (alpha-char-p #\0)
NIL
CL-USER(5): (alpha-char-p #\.)
NIL
可以在conju使用nction与every
:
CL-USER(7): (every #'alpha-char-p "word")
T
CL-USER(8): (every #'alpha-char-p "nonword7")
NIL
CL-USER(9): (every #'alpha-char-p "non-alpha-word")
NIL
CL-USER(10): (every #'alpha-char-p "今日は")
T
2
OK,我上面谈到变音符号,因为这种特殊情况下往往被忽视,下面是一个例子:
* (defparameter *weird-letter*
(coerce (list (code-char #x0438)
(code-char #x0306)) 'string))
*WEIRD-LETTER*
* *weird-letter*
"и"
* (length *weird-letter*)
2
* (every #'alpha-char-p *weird-letter*)
NIL
实际上,我不知道什么不同的Lisp实现将尽这里是因为Unicode支持在其中一些中是不同的(到目前为止我可以说)。
对于上面的代码,预期的结果一定是T
,因为实际上,两个代码点U + 0438-U + 0306构成一个带有变音符号的单个字母。 Unicode有两种拼写方式,一种是单个字符,另一种是不带变音符号和变音符号的相同字母的组合。所以,如果你想要超级正确,那么你将不得不检查这封信是否后面跟着变音符号,但是(注意!)只有其中一些实际上是有效的字母! Unicode是严重的企业...
编辑:
为了更好地说明我的情况:
#!/opt/ActivePerl-5.14/bin/perl
binmode STDOUT, ":utf8";
my $weird_letter = "\x{0438}\x{0306}";
print "$weird_letter\n";
if ($weird_letter =~ m/^(\pL|(\pL\pM))+$/)
{ print "it is a letter!\n"; }
else { print "it is not a letter!\n"; }
上面几乎可以公平地对待这种字符。
相关问题
- 1. Lua:如何检查一个字符串是否只包含数字和字母?
- 2. 如何检查字符串是否只包含英文字母?
- 3. 检查一个字符串是否包含数字和字母
- 4. 如何检查一个字符串是否是纯字母?
- 5. 如何检查的字符串只是字母
- 6. 检查字符串中是否有非字母和非数字
- 7. PHP检查字符串是否包含一些字母/数字
- 8. 如何检查字符串中的第一个字母是否是数字
- 9. 如何检查字符串是否只包含字母数字字符和破折号?
- 10. iOS:如何检查一个字符串是否只有数字?
- 11. 如何检查一个字符串是否只包含PHP中的字母?
- 12. 检查字符串是否仅包含英文字母,数字和符号
- 13. 如何检查字符串是否有一定数量的字母和数字?
- 14. 检查字符串是否包含字母数字
- 15. 如何检查两个字符串是否具有相同的字母,但只打印一次常用字母?
- 16. 检查一个字符串是否是M68k中的字母数字
- 17. 检查一个字符串是否只包含特殊字符
- 18. 检查字符串的第一个字母是否大写
- 19. 检查一个字符串是否只包含字母 - 电子邮件验证
- 20. 如何检查字符串中的字符是否是字母? Python
- 21. F#检查一个字符串是否只包含数字
- 22. 如何检查一个字符是否包含特定字母
- 23. 如何检查第一个字符是否为字母
- 24. 字母字符检查字符串
- 25. 检查一个字符串是否只包含字母空格和引号(最好不是正则表达式)
- 26. 如何检查字符串是否包含字母表中的任何字母?
- 27. 如何检查字母是否在字符串中?
- 28. 如何检查字符串是否至少有6个字符,一个大写字母和一个数字? - Javascript
- 29. 如何检查字母数字字符
- 30. 测试以查看一个字符串是否只包含字母数字
我建议将这个问题分成两部分。 'symbol-name'几乎与你似乎正在呼叫的符号无关。 –