Php 用于匹配特定表达式格式的正则表达式

Php 用于匹配特定表达式格式的正则表达式,php,regex,Php,Regex,我试图找到一个正则表达式,该正则表达式将匹配以下格式的特定表达式: name = value 但是,我需要它不匹配: name.extra = value 我有以下正则表达式: ([\w\@\-]+) *(\=|\>|\>\=|\<|\<\=) *([^\s\']+) ([\w\@\-]+)*(\=\\>\\>\=\\\只需在表达式中添加^开头和$结尾 ^([\w\@\-]+) *(\=|\>|\>\=|\<|\<\=) *([^\s\']+

我试图找到一个正则表达式,该正则表达式将匹配以下格式的特定表达式:

name = value
但是,我需要它不匹配:

name.extra = value
我有以下正则表达式:

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

([\w\@\-]+)*(\=\\>\\>\=\\\只需在表达式中添加
^
开头和
$
结尾

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

^([\w\@\-]+)*(\=\\>\=\\\>\=\\负查找断言(
?)可能就是您要查找的内容

对于简单的赋值:

摘要:

  • (?=在该位置阻止字符
  • \b
    =单词的开头
捕获的单词是:

  • \1=目的地名称
  • \2=源名称
使用您指定的正则表达式,应该可以得到如下结果:


(?| \>\=| \你没有说你在用什么语言,但听起来你根本不需要使用正则表达式


如果您使用的是PHP,那么请使用
explode
函数在
=
上分解。然后检查参数名称中是否有句点。

使用否定的lookback断言。似乎您正试图从代码中获取某些内容。从技术上讲,能够编写类似
名称的内容并不是无效的。额外的
(中间有空格),但这是非常罕见的,我自己也没有看到过这样糟糕的代码。如果你可以假设没有这种情况,那么可以通过反向查找轻松解决。你至少应该尝试镜像OP的结果。但是上面的正则表达式将因“name=value”而失败已修复。我忘记了上一个正则表达式中的空格,但这个想法与第一个赋值正则表达式中的想法相同。@DoesntMatter谢谢。我在RegexBuddy中尝试了这个方法,但我注意到了一些问题。当我使用此方法时:
(?\124;\>\=\ 124;\ Ok,我将其更改为:
(?| \>\=| \我不知道为什么这个答案得到了反对票。但从技术上讲,它是正确的。检查@om39a,因为假设OP只想匹配一行,而不是两端的空格,或者忽略更复杂的表达式
x=(name=y)是冒昧的;
@mario我同意你的看法。但我很想知道如何处理它。通过使用否定的向后看和单词的开头?像这样
(?我在这个问题上有PHP和Regex标记。另外,相信我,我知道我需要什么,我需要Regex。