我想限制输入以匹配语句change=where 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())
{
...
}
检查输出是否正确,但未能使函数正常工作。我哪里出错了?对于这个特殊的正则表达式,我应该使用什么语法(如果需要进一步澄清,请告知我)
2条答案
按热度按时间d8tt03nd1#
这符合你的要求。字符串,它正好以“change”开头,后跟一个空格。然后一个单词后跟一个等号再跟另一个单词。然后是字符串的结尾
5t7ly7z52#
首先,您需要将regexp改为:(我继续说,假设空白不重要。如果不是这样,请删除\s*)
\w匹配需要一个“+”来匹配[0-9a-za-z]中的一个或多个字符。否则它只寻找[0-9_a-za-z]中的一个。