小编Los*_*het的帖子

带有后视功能的正则表达式无法使用 re.match

以下python代码:

import re

line="http://google.com"
procLine = re.match(r'(?<=http).*', line)
if procLine.group() == "":
    print(line + ": did not match regex")
else:
    print(procLine.group())
Run Code Online (Sandbox Code Playgroud)

匹配不成功,输出如下错误:

回溯(最近一次调用):文件“C:/Users/myUser/Documents/myScript.py”,第 5 行,如果 procLine.group() ==“”:AttributeError: 'NoneType' 对象没有属性 'group '

当我只用 .* 替换正则表达式时,它工作正常,这表明它是错误的正则表达式,但是,在https://regex101.com/ 上,当我测试我的正则表达式和 python 风格的字符串时,它似乎匹配得很好。

有任何想法吗?

python regex string lookbehind

4
推荐指数
1
解决办法
1122
查看次数

PS 版本 2 的 powershell Get-Content -raw 替代方案

对于以后的 powershell 版本,我可以毫无问题地使用以下内容:

$contents = Get-Content $path -raw
if ($contents -match $regex) {
    $result = $matches[0]
}
Run Code Online (Sandbox Code Playgroud)

但是在 powershell 版本 2 中,Get-Content 没有 -raw 开关,但是如果没有 -raw 开关,正则表达式匹配步骤总是失败;$matches 似乎是 $null。

我不确定这个“原始”参数的内部工作原理,因为微软在各自的文档页面上提供了一个相当可悲的描述,所以我不确定如何解决它。

powershell powershell-2.0

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

向现有Powershell对象添加字符串属性的正确方法?

因此,例如,我有一个自定义对象$server。我想创建一个新属性,$server.output以包含大小不同的多行输出。最好的方法是什么?关于如何向对象添加简单的字符串属性,网络上似乎没有任何直接的信息?

仅供参考,我使用的是Powershell v4,但也可以为v5提供解决方案。

powershell powershell-4.0 powershell-5.0

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

如何在bash中列出名称中带有空格的子目录

我发现了一些类似的问题,但令人惊讶的是,它们都不适合我.

我用脚本编写了这个:

for d in $(ls -d "$1"); do echo $d done

$ 1是我希望打印出子目录列表的父目录,但是,运行它打印出来,例如,名为"dir with spaces"的目录在不同的行上作为3个单词.

bash ubuntu ubuntu-16.04

0
推荐指数
1
解决办法
50
查看次数