【发布时间】:2013-10-30 17:41:53
【问题描述】:
这是一个普遍的问题。我想知道他们的行为是否不同以及为什么,或者他们是否只有在我们做错事时才会有不同的行为?
这就是我目前正在努力解决的问题。 我有这个正则表达式:
CLASS_NAME_VALIDATION_REGEX = "([a-zA-Z_$][a-zA-Z\\d_$]*\\.)*[a-zA-Z_$][a-zA-Z\\d_$]*";
我是这样使用它的:
Pattern.matches(CLASS_NAME_VALIDATION_REGEX, qualifiedClassName)
所以在 Unix/Linux 下 matches() 返回 true,而在 Windows 上 java.io.Serializable 返回 false。
我是否有不恰当地逃避了某些事情,或者还有什么我不知道的事情?
谢谢,
所以问题可能不是正则表达式,我正在考虑结束这个问题,因为如果我是对的,这将是非常离题的。
我目前正在读取一个包含类名并将每个名称与正则表达式匹配的文件。每个名称都在单独的一行中。
Windows 和 Linux 上的回车符会不会是不同的字符?
【问题讨论】:
-
为了让我们更容易使用它,请附上一个 SSCCE(你几乎已经拥有它了)。
-
@NPE SSCCE ? (最小字符)
-
对不起,应该包含一个链接:sscce.org
-
基本上,我们可以复制粘贴,无需修改即可运行。
-
我的猜测:确保
qualifiedClassName中没有任何多余的字符。也许在 Windows 上,它一开始是带有\r\n的东西,你删除了\n但仍然有一个\r卡在里面?附:我在您编辑问题的同时添加了这个。幽灵般的。万圣节快乐。