我正在尝试检查字符串是否与格式为x+yi
或x-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();
时转义元字符。