我和我的一个同事使用相同的正则表达式,但我们获得了不同的结果,我们目前无能为力......正则表达式是为了找到任何以(字节)开头的东西,而不是(或)的任何东西跟着一个+号。我获得了好成绩但不是他。 我们都使用IntelliJ 14.1.14并在IntelliJ搜索引擎中使用正则表达式。 任何人都有经验并解决它?
正则表达式:
\(byte\)[^()]*\+
数据:
(byte)'a' + 1;
(byte)'-';
我的结果:
(byte)'a' +
他的结果:
(byte)'-';
答案 0 :(得分:1)
IntelliJ支持多种SDK。例如,在付费版本中,除了Java之外,您还可以使用Python插件(复制他们的PyCharm产品)。 regular expression engine会因SDK being used而异。
但是,如sln所示,您的表达式\(byte\)[^()]*\+
将永远不会匹配文本(byte)'-';
(无论使用何种引擎),因为正则表达式要求匹配的行以{{1}结尾符号,与他的结果不同。
因此,我认为他的表情有误;它不是IntelliJ的问题,甚至不是引擎的差异。您可能希望使用regex101网站进一步试验。
他可能没有自己的错误,并且文件编码的差异导致了这一点(尽管我不知道特定的不匹配会是什么。)尝试确保你是using the same encoding,UTF-8是一个很好的默认值。