我希望有一个正则表达式方法来查找 java 接受的确切字符串模式。
我现在有正则表达式:
STRINGS = \"[a-zA-Z0-9" "]*\"
哪个与以下字符串匹配:
"this is a string"
"thisisstring"
但它不支持转义字符,所以字符串如下:
"this is a sting \"\""
失败。另请注意,此字符串是:
"this is a sting \"\"
无效。有什么方法可以让我在正则表达式中捕获这些条件?
提前致谢。
您需要\\\\在您的正则表达式字符串中包含 a (在方括号之间)。\\是转义Java字符串中的 \ ,您需要 2 ,\\因为您需要转义正则表达式中的反斜杠。
很难说出你的字符串是什么,因为它们是伪代码。但这应该匹配所有 apha-numerics 和双引号:
String pattern = "[a-zA-Z0-9\" ]*";
Pattern.matches(pattern, "\"this is a sting \"");
这应该匹配所有字母数字、双引号或以下组合\"
String pattern = "([a-zA-Z0-9\" ]|\\\\\")*";
System.out.println(Pattern.matches(pattern, "\"this is a sting \\\""));
这是因为您必须\为字符串转义一次,为正则表达式解析器转义一次(因此它最终\连续 4 个以匹配\字符串中的 a)。