为什么我们要像java一样。util。Matcher和java。util。模式,为什么这些类没有出现在java中。util.*请帮帮我。
因为没有类java.util.Matcher
。有java.util.regex.Matcher
,但是*导入不会拉入整个包,只有类。如果您使用导入java.util.regex.*
,您会得到它们。
也就是说,*导入是无稽之谈,根本不应该使用。为您使用的类使用适当的导入,并且只使用您使用的类。
问题内容: 我有一些复杂的正则表达式,为了便于阅读和维护,需要对其进行注释。Java规范相当简洁,为了使它正常工作,我努力了很长时间。我终于抓住了我的错误,并将其发布为答案,但对于保持正则表达式的任何其他建议,我将不胜感激 作为示例,我想在一个简单的名称解析器中注释(patternS的)子组件: 编辑:我也将感谢(?x)格式的示例。 编辑:@ geowa4有一个很好的建议,可以避免嵌入注释。自从J
问题内容: 我的理解是Java的正则表达式实现是基于Perl的。但是,在下面的示例中,如果我使用相同的字符串执行相同的regex,则Java和Perl返回不同的结果。 这是Java示例: 返回值:不匹配 这是Perl的示例: 返回:匹配项 对我来说,Perl的结果很有意义。它寻找单个单词字符的匹配项。我不明白为什么Java不认为这是一个匹配。差异的原因是什么? 问题答案: Java 方法正在测试正
我发现正则表达式不包含101,如下所示: 0*1*0*(1 00 000)*(010)* 我无法理解作者是如何想出这个正则表达式的。所以我只想到了不包含101的字符串: 01000100 我似乎上面的字符串不会与上面的正则表达式匹配。但我不确定。所以尝试在regex101.com上翻译成等效的pcre正则表达式,但也失败了(因为可以看到我的正则表达式甚至不匹配包含单个1的字符串。 我的翻译有什么问
我需要一些“包含”和“不包含”的正则表达式。通常我会写: 包含:(.*WORD_A.*)$,不包含:(^((?!WORD_A.*)*)$ 如果单独使用,这很好,但我想写一些可以检测到的东西,比如“包含单词A和单词B”(顺序不相关!)和“包含单词A,但不包含单词B)。 基本上,我希望用户可以做出这样的声明“以单词a开头,包含单词B,但不是C和/或以D结尾”,程序返回真/假。最好的办法是只附加正则表达
问题内容: 以下代码在Java 8和9中都可以编译,但是行为不同。 当我使用Java 8运行它时,它返回: 但是当我用Java 9运行它时,输出却不同: 为什么? 问题答案: 在Java文档是Unicode标准的一致性出来。Javadoc弄混了应该匹配的内容。内容为: 任何Unicode换行符序列都等效于 该Java文档是错误的。在R1.6换行符的小节中,有关正则表达式的Unicode技术标准#1
我需要一些帮助。我得到: 这是我的密码: 我必须对一些文件使用unicode值,因为我使用的是xhtml。 任何帮助都会很好!