我注意到很多代码,人们在其中执行以下操作:
myClass.someMethod(something here, $1);
1 美元正在从“这里的东西”中获得价值?
这被称为什么?我好像到处都找不到?但是这一步,过程在正则表达式的情况下使用了很多..
我注意到很多代码,人们在其中执行以下操作:
myClass.someMethod(something here, $1);
1 美元正在从“这里的东西”中获得价值?
这被称为什么?我好像到处都找不到?但是这一步,过程在正则表达式的情况下使用了很多..
您经常会在正则表达式中看到这一点,其中$1
表示您要转移到新值中的捕获组。
例如,假设我们正在为我们的网站构建一个推文解析器。我们想在推文中找到@references,并将它们转换为指向这些特定帐户的链接:
// Our Tweet
$t = "I am @jonathansampson, and I work with @appendTo.";
// Find every occurence of @something, capture 'something'
echo preg_replace("/@([a-z]+)/i", "<a href='http://twitter.com/$1'>$0</a>", $t);
请注意,我们正在匹配每个出现的@something,但我们将用户名部分包装在其中(
,)
以便我们可以在替换文本中单独处理它。整个模式由 表示$0
,它将完整地保存从@
用户名中的最后一个字符到最后一个字符的值。
JavaScript 也是如此:
var tweet = "I am @jonathansampson, and I work with @appendTo.",
patrn = /@([a-z]+)/gi,
links = tweet.replace(patrn, "<a href='http://twitter.com/$1'>$&</a>");
变量links
现在包含值:
console.log(links);
/*
"I am <a href='http://twitter.com/jonathansampson'>@jonathansampson</a>, and
I work with <a href='http://twitter.com/appendTo'>@appendTo</a>."
*/
您可能会注意到,我$&
在 JavaScript 中使用 PHP 来获取整个匹配模式$0
- 我们必须处理生活中的这些差异。我很抱歉 ;)
如果你在谈论 javascript,$ 可以在声明中使用,所以它可能是一些东西。
例如,您可以将变量声明为
var $1 = 1;
然后在您的通话中使用它
myClass.someMethod(something here, $1);
同样,它可以是对函数的引用。