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。