小编Emi*_*ggi的帖子

ruby rspec和字符串比较

我不是一个红宝石专家,可能这似乎是一个愚蠢的问题...但我太奇怪了(我认为)我在RSpec匹配器中找到了匹配.

你知道match输入字符串或正则表达式.例:

"test".should match "test" #=> will pass
"test".should match /test/ #=> will pass
Run Code Online (Sandbox Code Playgroud)

当您在输入字符串中插入特殊的正则表达式字符时,奇怪的开始:

"*test*".should match "*test*" #=> will fail throwing a regex exception
Run Code Online (Sandbox Code Playgroud)

这意味着(我认为)输入字符串被解释为正则表达式,然后我应该转义特殊的正则表达式字符以使其工作:

"*test*".should match "\*test\*" #=> will fail with same exception
"*test*".should match /\*test\*/ #=> will pass
Run Code Online (Sandbox Code Playgroud)

从这个基本测试中,我理解match将输入字符串视为正则表达式,但它不允许您转义特殊的正则表达式字符.

我是真的吗?这不是一种奇异的行为吗?我的意思是,这是一个字符串或正则表达式!


编辑后编辑:

继DigitalRoss(右)回答以下测试通过:

"*test*".should match "\\*test\\*" #=> pass
"*test*".should match '\*test\*' #=> pass
"*test*".should match /\*test\*/ #=> pass
Run Code Online (Sandbox Code Playgroud)

ruby rspec

16
推荐指数
1
解决办法
2万
查看次数

避免写入输出中的换行符

我想从日志文件中收集脚本的所有输出,并且必须使用write-output instaed of write-host.

Write-Output "Server:" $a 好像

Server:
foo
.

我是否真的必须写信
write-output $("sfdghk:" + $a)才能获得Server:Foo

谢谢-jt

powershell

16
推荐指数
4
解决办法
3万
查看次数

如何在管道内使用"if"语句

我正试图if在管道内使用.

我知道有where(别名?)过滤器,但是如果我想只在满足某个条件时才激活过滤器怎么办?

我的意思是,例如:

get-something | ? {$_.someone -eq 'somespecific'} | format-table

如何if在管道内使用来打开/关闭过滤器?可能吗?是否有意义?

谢谢

编辑澄清

没有管道,它看起来像这样:

if($filter) {
 get-something | ? {$_.someone -eq 'somespecific'}
}
else {
 get-something
}

在ANSWER的riknik之后编辑

愚蠢的例子显示了我在寻找什么.您有一个存储在变量上的非规范化数据表,$data并且您希望执行一种"向下钻取"数据过滤:

function datafilter {
param([switch]$ancestor,
    [switch]$parent,
    [switch]$child,
    [string]$myancestor,
    [string]$myparent,
    [string]$mychild,
    [array]$data=[])

$data |
? { (!$ancestor) -or ($_.ancestor -match $myancestor) } |
? { (!$parent) -or ($_.parent -match $myparent) } |
? { (!$child) -or ($_.child -match $mychild) } |

} …

powershell pipeline statements conditional-statements

15
推荐指数
1
解决办法
3万
查看次数

更改上下文节点的XSLT指令/函数列表?

有谁知道更改上下文节点的XSLT指令/函数列表?

例如,指令for-each就是其中之一.

xml xslt xslt-2.0 xslt-1.0

13
推荐指数
1
解决办法
5478
查看次数

XPath:逻辑OR

请帮助在XPATH中使用逻辑OR运算符,并从这两个中选择一个请求:

1) .//span[@class=\'fob12\']

2) .//p[@class=\'fob12\']

它们的标签不同.

c# xpath logical-operators

9
推荐指数
2
解决办法
6101
查看次数

使用xslt获取X位置的节点值

如何在不使用foreach的情况下在x位置使用xslt,节点值

<items>
<item1>x</item1>
<item2>x</item2>
<item3>x</item3>
</items>
Run Code Online (Sandbox Code Playgroud)

这在编程意义上解释:

<xsl:value-of select="Items/Item[2]"/>
Run Code Online (Sandbox Code Playgroud)

==================================================

只是为了扩展问题,在下面的xml中:

<items>
    <about>xyz</about>
    <item1>
       <title>t1</title>
       <body>b1</body>
    </item1>
    <item2>
       <title>t2</title>
       <body>b2</body>
    </item2>
    <item3>
       <title>3</title>
       <body>3</body>
   </item3>
</items>
Run Code Online (Sandbox Code Playgroud)

如何选择第二个项目标题.

xslt xpath msxsl xslt-1.0

9
推荐指数
1
解决办法
3万
查看次数

如何在Powershell中自动回答"是"?

如何在PowerShell会话中输入"是"作为交互式问题的答案?我知道,在Bash中,Yes是提示回答"是"的工具.在我的情况下,我无法抑制提示.

我正在运行的脚本停在

如果您想继续,请回答"是":

powershell如何运行脚本并在提示时"回答"是?

powershell

9
推荐指数
4
解决办法
2万
查看次数

在PowerShell中还有其他DSL的例子吗?

PowerBoots是一个非常有用的DSL示例,它利用脚本块来创建GUI:

Boots {
   StackPanel {
      Button "A bed of clams"
      Button "A coalition of cheetas"
      Button "A gulp of swallows"
   }
}

我知道如果没有指定目标域,这个问题看起来很一般.所以我要更具体:

你知道在PowerShell中实现一种DSL的任何其他项目吗?

powershell dsl abstraction

8
推荐指数
2
解决办法
1855
查看次数

如何从ruby脚本中的(终端)cd文件夹中

我想知道是否可以从我正在执行ruby脚本的位置更改当前终端目录.

例如,如果我正在$HOME终端中执行脚本,我想$HOME/mydir在脚本的末尾cd入.

我尝试了几件事,但我总是在脚本启动的同一个导演中找到.

我试过的事情:

Dir.chdir( mydir )
%[cd mydir]
Run Code Online (Sandbox Code Playgroud)

它们实际上是在更改目录,但仅在脚本执行的线程中.当脚本结束时,我在终端中的当前位置仍然与启动脚本之前的位置相同.

我在SO中发现了类似的东西,但它与Python相关并且响应似乎是否定的.


你可能会问为什么?

我目前正在参与一个命令行应用程序(使用gli),作为起点,它需要一个项目文件夹.所以我的第一个命令看起来像:

$ myfoo new project
Run Code Online (Sandbox Code Playgroud)

这会project在当前目录中创建一个名称为的新文件夹.现在能够使用我需要的其他命令:

$ cd project
project$ myfoo domore
Run Code Online (Sandbox Code Playgroud)

所以我只是觉得在project执行完毕后发现自己很好myfoo new project.


我害怕,这并不容易(根本不可能).那么使用一个执行我想要的ruby调用的bash脚本代替RubyGems生成的标准文件呢?这可行吗?我傻了吗?我应该用eval吗?


谢谢你的回答.但我担心没人接受.可能问题不是:).

ruby

8
推荐指数
1
解决办法
2951
查看次数

在PowerShell中是否还有其他括号用法?

作为Powershell世界的新手,有时我会陷入棘手的语法.这就是为什么我试图弄清楚语言中括号的所有可能用途.

你还知道吗?你能加到这里吗?

在我这里(省略了管道中卷曲的基本用法和方法调用中的圆形):

# empty array
$myarray = @()

# empty hash
$myhash = @{}

# empty script block
$myscript = {}

# variables with special characters
${very strange variable @ stack !! overflow ??}="just an example"

# Single statement expressions
(ls -filter $home\bin\*.ps1).length

# Multi-statement expressions inside strings
"Processes: $($p = “a*”; get-process $p )"

# Multi statement array expression
@( ls c:\; ls d:\)
Run Code Online (Sandbox Code Playgroud)

syntax powershell language-construct

7
推荐指数
1
解决办法
1136
查看次数