我正在尝试找到一个与以下格式的特定表达式匹配的正则表达式:
name = value
然而,我需要它不匹配:
name.extra = value
我有以下正则表达式:
([\w\@\-]+) *(\=|\>|\>\=|\<|\<\=) *([^\s\']+)
匹配第一个表达式,但也匹配第二个表达式(extra = value
)。
我需要一个只匹配第一个表达式而不是第二个表达式的正则表达式(即带点)。
答案 0 :(得分:1)
只需将^
开头和$
结尾添加到您的表达式
^([\w\@\-]+) *(\=|\>|\>\=|\<|\<\=) *([^\s\']+)$
答案 1 :(得分:0)
负面的背后断言(?<!
)可能就是你要找的。 p>
对于简单的作业:(?<!\.)\b(\w+)\s*=\s*(\w+)
摘要:
(?<!\.)
=阻止该位置的字符.
\b
=单词的开头捕获的单词是:
并使用你指定的正则表达式,这应该在这附近给出一些东西:
(?<!\.)\b([\w\@\-]+) *(\=|\>|\>\=|\<|\<\=) *([^\s\']+)
答案 2 :(得分:0)
您没有说出您正在使用的语言,但听起来您根本不需要使用正则表达式。
如果您使用的是PHP,请使用explode
功能在=
上分开。然后检查参数名称是否有句号。