回答
匹配单个字符将是(使用Perl正则表达式):
/\A.\z/s
\A
表示“字符串的开始”,.
意味着“任何文字”,以及\z
表示“字符串的末尾”。如果没有\A
和\z
,您将匹配任何长度超过一个字符的字符串。
编辑:但真的是你应该做的是这样的:
if(length($string) == 1) {
...
}
(使用Perl作为一个例子)
EDIT2:以前我有/^.$/
但是,正如赛斯指出,这允许在最后一个字符为\n
的情况下匹配长度为两个字符的字符串。 \A...\z
构造修复了这个问题。
列出的正则表达式匹配“x”和“x \ n” – 2011-05-20 22:07:00
@祝好,我已经修复了我的回答以反映这一点。 – CanSpice 2011-05-20 22:12:59
除外。除非使用/ s修饰符(在Ruby中为/ m),否则通常表示“除\ n之外的任何字符”,因此“\ n”不匹配。 – 2011-05-20 22:14:59
锚定到字符串的开头和结尾并匹配一个字符。在许多语言:
^.{1}$
在Ruby的正则表达式:
\A.{1}\z
{1}不添加任何内容。后者是正确的,而前者将匹配“x”和“x \ n”。您还需要确保。可以匹配\ n,它通常不会没有/ s修饰符(在Ruby中为/ m) – 2011-05-20 22:05:07
@Seth“{1}”不会在OP提到的“例如”情况下添加任何内容,但OP要求如何测试一般的长度。我已经添加了{1}(与其他人一样),以明确如何匹配不同数量的字符。此外,“$”是否与“\ n”匹配取决于正则表达式风格。由于OP尚未指定口味,因此您的陈述不完全正确。 – Phrogz 2011-05-20 23:50:51
/^.\z/s
以上需要Perl兼容的正则表达式。诀窍是/^.$/可能匹配“x”和“x \ n”。添加/ s修饰符对此没有帮助。
- 1. 正则表达式测试 “\” 字符串
- 2. 使用正则表达式(正则表达式)根据输入字符串的长度去除字符
- 3. Python的正则表达式的源字符串长度
- 4. 正则表达式的长度的字符串0-2
- 5. Python正则表达式的确切字符串长度
- 6. 正则表达式 - 最小长度的字符串重复
- 7. 正则表达式的Java总字符串长度
- 8. 用于检测查询字符串的正则表达式
- 9. 用于检测字符串内重复的正则表达式
- 10. 正则表达式来限制字符串的长度与新行字符
- 11. 字符串使用正则表达式替换正则表达式字符类
- 12. 正则表达式。设置字符串长度
- 13. 正则表达式来限制字符串长度
- 14. 为什么正则表达式不关心字符串长度
- 15. 正则表达式中的最大表达式字符串长度(MATLAB)
- 16. 正则表达式的正则表达式的Java字符串
- 17. 测试字符串是否为空的正则表达式
- 18. 分割字符串测试=“毒鼠强”的正则表达式
- 19. 用正则表达式匹配一定长度的字符串中的数字
- 20. 正则表达式引用字符串
- 21. 印度字符的正则表达式
- 22. 正则表达式用于排除字符串开头的字
- 23. 正则表达式来测试一个HTML字符串?
- 24. 在Mongoose正则表达式中测试空字符串
- 25. 正则表达式Scala的字符串
- 26. 正则表达式的字符串
- 27. PHP字符串的正则表达式
- 28. Java的正则表达式字符串
- 29. 字符串的正则表达式
- 30. Mathjax的正则表达式字符串
什么语言?为什么不能使用像'length()'或'strlen()'这样的函数呢? – CanSpice 2011-05-20 22:00:04
'/^.$/',但我不能相信你使用的任何语言没有更好的方式来做到这一点。 – lonesomeday 2011-05-20 22:00:18