有没有更简单的方式写这个:
map.old_site_cusom_packages '/customs_packages_options.html', :controller => :public, :action => :redirect_to_home
map.old_corporate '/corporate.html', :controller => :public, :action => :redirect_to_home
map.old_track '/track.html', :controller => :public, :action => :redirect_to_home
map.old_links '/links.html', :controller => :public, :action => :redirect_to_home
map.old_contact '/contact.html', :controller => :public, :action => :redirect_to_home
Run Code Online (Sandbox Code Playgroud)
我想在一个控制器上向一个动作发送许多命名路由,我确保从旧站点遗留的URL重定向到正确的页面.
干杯.
在我的Cake应用程序中,我有一个控制器"completed_projects".它的索引操作不带参数,并列出了一些项目.可以通过example.com/completed_projects/index/page:23等方式访问不同的页面
我想让网址像这样:
example.com/portfolio/page23
Run Code Online (Sandbox Code Playgroud)
显然我需要为此制定一些路线.我尝试了很多像:
Router::connect('/portfolio/page:num', array('controller' => 'completed_projects', 'action' => 'index'), array('pass'=>'page:num', 'num'=>'[0-9]+'));
Run Code Online (Sandbox Code Playgroud)
并且:
Router::connect('/portfolio/:page:num', array('controller' => 'completed_projects', 'action' => 'index'), array('named'=>'num', 'page'=>'page', 'num'=>'[0-9]+'));
Run Code Online (Sandbox Code Playgroud)
我也一次又一次地尝试修改它们,但没有一个能很好地工作.
我正在使用CakePHP 1.3.任何帮助将不胜感激.
我喜欢命名分支的灵活性,但我对头部的增加有一些担忧.
即使分支关闭,它仍然出现在头部.我知道如何清理"hg head"的输出我的问题是大师:"我错过了什么?"
首先你可能会问,为什么我要完全隐藏指定分支的头部?由于各种原因:
编辑: 事实证明,头部的增加是我使用的旧版本mercurial的症状.关闭分支会将分支的头部隐藏在较新的Mercurial版本上.
我的想法是有一个"死"的头部分支,所有这些封闭的分支头将合并到其上.
死角将由变更集0作为父级,其唯一目的是捆绑现在不需要的流浪头.
死角只有其他死角子项,它们永远不会合并回默认分支.
我知道如何在excel中创建一个命名范围.
我有一个电子表格,各种列作为参数,最后是最后一个单元格中的公式.这在每一行中重复多次,每行具有不同的数据集,并且更新公式以引用正确的行索引.
然而,公式看起来像(3行值):
=G2*(10*D2 + 20*E2 + 5*F2)
=G3*(10*D3 + 20*E3 + 5*F3)
=G4*(10*D4 + 20*E4 + 5*F4)
Run Code Online (Sandbox Code Playgroud)
我想使用命名范围,但我无法找到一种方法来做类似的事情
=Count * (10*var1 + 20*var2 + 5*var3)
Run Code Online (Sandbox Code Playgroud)
其中count,var1,var2和var3自动更新为当前行的特定列.我可以为每个单元格创建一个命名范围,但这没有用.我可以为列命名范围,但后来我找不到将偏移量放入公式的方法.
此外,这一点的全部意义在于可读性,因此如果它最终成为一些令人讨厌的复杂公式函数调用,那可能并没有太大帮助.
假设我有一个如下所示的正则表达式,但我将它从一个文件加载到一个变量$ regex中,所以在设计时不知道它的内容是什么,但在运行时我发现它包含"version1", "version2","version3"和"version4"命名组:
"Version (?<version1>\d),(?<version2>\d),(?<version3>\d),(?<version4>\d)"
Run Code Online (Sandbox Code Playgroud)
......我有这些变量:
$version1 = "3"
$version2 = "2"
$version3 = "1"
$version4 = "0"
Run Code Online (Sandbox Code Playgroud)
...我在文件中遇到以下字符串:
Version 7,7,0,0
Run Code Online (Sandbox Code Playgroud)
...存储在变量$ input中,因此($ input -match $ regex)的计算结果为$ true.
如果我不知道它们出现在$ regex中的顺序,我怎么能用字符串$ input中的$ regex替换$ version1,$ version2,$ version3,$ version4的值中的命名组(我只知道$正则表达式包括这些命名组)?
我找不到任何描述使用组名作为匹配索引用变量值替换命名组的语法的引用 - 这是否支持?
编辑: 澄清 - 目标是替换任何类型的文本文件中的模板版本字符串,其中给定文件中的版本字符串需要替换可变数量的版本字段(可能是2,3或所有4个字段).例如,文件中的文本可能看起来像这些中的任何一个(但不限于这些):
#define SOME_MACRO(4, 1, 0, 0)
Version "1.2.3.4"
SomeStruct vs = { 99,99,99,99 }
Run Code Online (Sandbox Code Playgroud)
用户可以指定文件集和正则表达式以匹配包含字段的行,最初的想法是命名组将捕获各个字段.该实用程序具有应在文件中替换的各个版本字段值,但必须保留将包含替换的行的原始格式,并仅替换所请求的字段.
EDIT-2: 我想我可以根据每个匹配的位置和范围得到我需要的子串计算结果,但希望Powershell的替换操作能够为我节省一些工作.
EDIT-3: 所以,正如Ansgar在下面正确而简洁地描述的那样,没有办法(只使用原始输入字符串,一个正则表达式,你只知道命名组,以及产生的匹配)来使用" -替换"操作(或其他正则表达式操作)以执行命名组的捕获的替换,同时保留原始字符串的其余部分.对于这个问题,如果有人好奇,我最终使用下面的解决方案.YMMV,其他解决方案可行.非常感谢Ansgar提供的反馈和选择.
在以下代码块中:
$ regex中命名组的约束只是(我认为)命名组中的表达式不能嵌套,并且在输入字符串中最多应匹配一次.
# This will give us …Run Code Online (Sandbox Code Playgroud) CentOs 6下的命名服务使用了所有4个处理器中的100%.我试着玩配置文件.我目前有10个网站.以下是一个样本
$TTL 14400
@ IN SOA ns1.mynameserver.com. hostmaster.mydomain.com. (
2012071300
14400
3600
1209600
86400 )
mydomain.com. 14400 IN NS ns1.mynameserver.com.
mydomain.com. 14400 IN NS ns2.mynameserver.com.
ftp 14400 IN A 123.218.168.8
localhost 14400 IN A 127.0.0.1
mail 14400 IN A 123.218.168.8
pop 14400 IN A 123.218.168.8
mydomain.com. 14400 IN A 123.218.168.8
smtp 14400 IN A 123.218.168.8
www 14400 IN A 123.218.168.8
mydomain.com. 14400 IN MX 10 mail
mydomain.com. 14400 IN TXT "v=spf1 a mx ip4:123.218.168.8 ~all"
localhost 14400 IN AAAA …Run Code Online (Sandbox Code Playgroud) 我试图从列表中删除命名组件,使用within和rm.这适用于单个组件,但不适用于两个或更多组件.我完全糊涂了.
例如 - 这是有效的
aa = list(a = 1:3, b = 2:5, cc = 1:5)
within(aa, {rm(a)})
Run Code Online (Sandbox Code Playgroud)
输出within将只包含未删除的组件.
但是,这不是:
aa = list(a = 1:3, b = 2:5, cc = 1:5)
within(aa, {rm(a); rm(b)})
Run Code Online (Sandbox Code Playgroud)
这也不是:
within(aa, {rm(a, b)})
Run Code Online (Sandbox Code Playgroud)
输出within将包含所有组件,以及我要删除的组件,设置为NULL.为什么?
我正在尝试解析 csv 文件,并且正在尝试访问 Perl6 中的原始正则表达式中的名称正则表达式。事实证明是零。正确的做法是什么?
grammar rsCSV {
regex TOP { ( \s* <oneCSV> \s* \, \s* )* }
proto regex oneCSV {*}
regex oneCSV:sym<noQuote> { <-[\"]>*? }
regex oneCSV:sym<quoted> { \" .*? \" } # use non-greedy match
}
my $input = prompt("Enter csv line: ");
my $m1 = rsCSV.parse($input);
say "===========================";
say $m1;
say "===========================";
say "1 " ~ $m1<oneCSV><quoted>; # this fails; it is "Nil"
say "2 " ~ $m1[0];
say "3 " ~ $m1[0][2];
Run Code Online (Sandbox Code Playgroud) R 有两个不常用的类:“Dlist”和“namedList”。
关于第一个,它是关于 的Sys.getenv(),如果其参数丢失,它会返回类“Dlist”的结果,以进行良好的打印。事实上,该类有一个print.Dlist方法。还有一个 formatDL与格式化描述列表明显相关的函数。但是我不知道如何创建“Dlist”类的对象。
至于“namedList”,手册中是这样定义的:
保留名称属性的“列表”的替代方案
在这种情况下,我无法创建这种类型的对象,也没有找到任何使用它的实例。
如何创建“Dlist”或“namedList”?
您能否提供一个示例,其中“namedList”比普通命名列表更方便?(旨在作为一个列表L,其中names(L)不是NULL)
Something我创建了一个包含成员变量的类。
我能够做到这一点,它按预期工作:
struct Something
{
bool Works;
};
int main()
{
Something s = {
.Works = false,
};
}
Run Code Online (Sandbox Code Playgroud)
现在,我想创建一个继承自Something、named的结构Something2,并想做同样的事情,但我希望能够访问Something::Works(我将其重命名为DoesntWork,因为它不起作用!):
struct Something
{
bool DoesntWork;
};
struct Something2 : public Something
{
bool Works;
};
int main()
{
Something2 s2 = {
.Works = true,
.DoesntWork = false,
};
}
Run Code Online (Sandbox Code Playgroud)
https://godbolt.org/z/rYT3br467
我不是在寻找替代方案,我已经想到了一些。我只是想知道这是否可能,如果可以,那么如何实现。
如果不可能,我真的很想知道低级原因,所以不要犹豫!
更新:感谢 Nathan Oliver 的评论,您可以阅读:Designatedinitializer in C++20