1

在我的 bash 脚本中,我使用正则表达式来匹配一串变量赋值,例如:

  1. Var = 值
  2. 变量 = 值;
  3. 变量=值
  4. 变量=值;
  5. 变量值

我开发的正则表达式:\s*${varName}\s*\={0,1}\s*.*\s*;{0,1}

这个正则表达式可以匹配上面的每个实例,但也可以匹配另一个我不想要的实例,即VarValue

我想不出办法让我的正则表达式与VarValue实例不匹配。

4

2 回答 2

2

\s*{varName}(?:\s*=\s*|\s+)(\w+)

我没有修改你的正则表达式,因为它看起来很复杂,但是这个会匹配上面列出的所有情况而不匹配VarValue。您的数据将在第 1 组中。

在这里玩正则表达式

于 2012-06-15T20:51:43.507 回答
2

修改你的:

\s*${varName}(\s?[\s\=]\s?).+\s*;{0,1}
于 2012-06-15T20:52:25.120 回答