正则表达式在java中的应用

vyswwuz2  于 2021-07-05  发布在  Java
关注(0)|答案(2)|浏览(450)

我想限制输入以匹配语句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())
  {
     ...
  }

检查输出是否正确,但未能使函数正常工作。我哪里出错了?对于这个特殊的正则表达式,我应该使用什么语法(如果需要进一步澄清,请告知我)

d8tt03nd

d8tt03nd1#

这符合你的要求。字符串,它正好以“change”开头,后跟一个空格。然后一个单词后跟一个等号再跟另一个单词。然后是字符串的结尾

private static final Pattern SET = Pattern.compile("^change \\w+=\\w+$");
5t7ly7z5

5t7ly7z52#

首先,您需要将regexp改为:(我继续说,假设空白不重要。如果不是这样,请删除\s*)

SET = Pattern.compile("\\s*change\\s+\\w+\\s*=\\s*\\w+\\s*");

\w匹配需要一个“+”来匹配[0-9a-za-z]中的一个或多个字符。否则它只寻找[0-9_a-za-z]中的一个。

相关问题