字符类中的字符顺序在正则表达式中是否重要

Bis*_*ida 0 java

我在正则表达式中使用字符类来拆分字符串.我假设字符类中的字符顺序无关紧要.

以下是我用来分割字符串的两种模式"123.3+23+23.3".

[+/*-]

[+*-/]
Run Code Online (Sandbox Code Playgroud)

对于第一个模式,我得到的输出为:

123.3
23
23.3
Run Code Online (Sandbox Code Playgroud)

对于第二种模式,我得到的输出为:

123
3
23
23
3
Run Code Online (Sandbox Code Playgroud)

我不知道,为什么我得到不同的输出.请帮帮我.

Ben*_* P. 5

在字符类中,-是一个范围运算符([a-f]与其相同[abcdef]).因此,如果要-在范围中包含实际值,则必须是第一个或最后一个字符.

因此,您的第一个示例将匹配+ / * -,而您的第二个示例将匹配+ / * - , ..

在此输入图像描述

  • @ cst1992不在Java文字中.对于正则表达式解析器,`-`需要被"转义",因此对于Java解析器,转义需要加倍. (2认同)