正则表达式匹配特定的表达式格式

时间:2012-12-28 03:56:30

标签: php regex

我正在尝试找到一个与以下格式的特定表达式匹配的正则表达式:

name = value

然而,我需要它不匹配:

name.extra = value

我有以下正则表达式:

([\w\@\-]+) *(\=|\>|\>\=|\<|\<\=) *([^\s\']+)

匹配第一个表达式,但也匹配第二个表达式(extra = value)。

我需要一个只匹配第一个表达式而不是第二个表达式的正则表达式(即带点)。

3 个答案:

答案 0 :(得分:1)

只需将^开头和$结尾添加到您的表达式

即可
^([\w\@\-]+) *(\=|\>|\>\=|\<|\<\=) *([^\s\']+)$

答案 1 :(得分:0)

负面的背后断言(?<!)可能就是你要找的。

对于简单的作业:(?<!\.)\b(\w+)\s*=\s*(\w+)

摘要:

  • (?<!\.) =阻止该位置的字符.
  • \b =单词的开头

捕获的单词是:

  • \ 1 =目的地名称
  • \ 2 =来源名称

并使用你指定的正则表达式,这应该在这附近给出一些东西:

(?<!\.)\b([\w\@\-]+) *(\=|\>|\>\=|\<|\<\=) *([^\s\']+)

答案 2 :(得分:0)

您没有说出您正在使用的语言,但听起来您根本不需要使用正则表达式。

如果您使用的是PHP,请使用explode功能在=上分开。然后检查参数名称是否有句号。