【发布时间】:2013-10-08 06:34:26
【问题描述】:
有很多关于正则表达式匹配可能空字符串的帖子,但我找不到任何提供仅匹配空字符串的正则表达式。
我知道^ 将匹配任何行的开头,$ 将匹配任何行的结尾以及字符串的结尾。因此,/^$/ 匹配的内容远远超过空字符串,例如“\n”、“foobar\n\n”等。
不过,我原以为/\A\Z/ 将只匹配空字符串,因为\A 匹配字符串的开头,\Z 匹配字符串的结尾。但是,我的测试表明/\A\Z/ 也将匹配“\n”。这是为什么呢?
【问题讨论】:
-
有很多SO posts关于正则表达式来匹配一个空字符串,所以粗略一看,它似乎可能是重复的。考虑更改您的标题以更具体地解决您忽略换行符的问题。
-
这是一篇关于正则表达式的帖子,它不 将空字符串与一组关于原因的答案相匹配。我真的尝试过,但找不到关于只匹配空字符串的正则表达式的帖子,更不用说处理这个问题的帖子以及
\z和\Z之间的区别了。我不想弄乱SO。如果你能找到一个重复的问题,我很乐意删除这个问题。也就是说,我在这个标题中强调了“仅”这个词。 -
删除多行标志,^$ 应该可以工作
-
@JamRisser 我了解与多行模式的交互。我应该是明确的,但我问的是一个正则表达式只匹配一个空字符串in multiline mode。请特别注意最后一段。