我想限制输入以匹配语句change =其中word和value都是任意单词(不包含空格的字符序列),并且只存在一个空格(在单词“change”和a之间)输入
例如,“change variable = value”有效,但“change variable = value”和“change this”不是。
我的尝试:
private static final Pattern SET = Pattern.compile("change\\s\\w=\\w");
我使用
条款 if(SET.matcher(command).find())
{
...
}
检查输出是否正确,但无法使功能正常工作。我哪里错了?我应该为这个特定的正则表达式使用什么语法? (如果需要进一步澄清,请告诉我)
答案 0 :(得分:3)
这符合您的要求。完全启动女巫的字符串“更改”后跟一个空格。然后是一个单词后跟一个等号后跟另一个单词。然后结束字符串
private static final Pattern SET = Pattern.compile("^change \\w+=\\w+$");
答案 1 :(得分:0)
首先,您需要将正则表达式更改为: (我继续假设的空白并不重要。如果不是这样的话,请删除\ s *)
SET = Pattern.compile("\\s*change\\s+\\w+\\s*=\\s*\\w+\\s*");
\ w匹配需要一个'+'来匹配[0-9_A-Za-z]中的一个或多个字符。否则它只查找[0-9_A-Za-z]中的一个。