java中的正则表达式

时间:2009-11-03 10:55:42

标签: java regex

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

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

2 个答案:

答案 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]中的一个。