模式语法异常:悬空元字符,即使没有元字符悬空

  • 本文关键字:字符 异常 模式 语法 java regex
  • 更新时间 :
  • 英文 :


我正在尝试检查字符串是否与格式为x+yix-yi的复数模式匹配。 我为此目的的正则表达式是^d+(.d+)?[-+]d+(.d+)?i的,它在正则表达式 (regexr.com/572bb( 上运行良好。

这是我在java中的最小示例:

public class ExampleClass {
public static void main(){
String comp = "3+5i";
System.out.println(comp.matches("^\d+(\.\d+)?[-\+]\d+(\.\d+)?i"));
}

它会引发上述异常。这是完整的:

Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 0

它抱怨的"+"是这个:[-\+]但自从我逃脱它以来,它似乎并没有悬而未决。我是初学者,所以我将不胜感激我能得到的任何帮助。谢谢!

要表示复合物 x + yi,x-yi,你可以这样做

String comp = "3+5i";
System.out.println(comp.matches("^[0-9]+([.][0-9]+)?[+,-][0-9]+([.][0-9]+)?[i]$"));

这个问题与那个表达完全无关。我用了String.split("+");我的代码中的其他地方,忽略了转义"+"。

对于后代:使用String.split();时转义元字符。

最新更新