小编Mic*_*ael的帖子

负向前看python正则表达式

当字符串'02 d0'没有出现在字符串中的特定位置时,我想正则表达式匹配一个字节序列.不能出现这个两个字节的字符串的位置是从右侧第0个字节开始的字节位置6和7.

这是我一直用于测试的内容:

#!/usr/bin/python
import re

p0 = re.compile('^24 [\da-f]{2} 03 (01|03) [\da-f]{2} [\da-f]{2} [\da-f]{2} (([^0])|    (0[^2])|(02 [^d])|(02 d[^0])) 01 c2 [\da-f]{2} [\da-f]{2} [\da-f]{2} 23')
p1 = re.compile('^24 [\da-f]{2} 03 (01|03) [\da-f]{2} [\da-f]{2} [\da-f]{2} (([^0])|(0[^2])|(02 [^d])|(02 d[^0])) 01')
p2 = re.compile('^24 [\da-f]{2} 03 (01|03) [\da-f]{2} [\da-f]{2} [\da-f]{2} (([^0])|(0[^2])|(02 [^d])|(02 d[^0]))')
p3 = re.compile('^24 [\da-f]{2} 03 (01|03) [\da-f]{2} [\da-f]{2} [\da-f]{2} (?!02 d0) 01')
p4 = re.compile('^24 [\da-f]{2} 03 (01|03) [\da-f]{2} [\da-f]{2} [\da-f]{2} (?!02 d0)')

yes = '24 0f 03 01 42 …
Run Code Online (Sandbox Code Playgroud)

python regex negative-lookahead

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

在对其他值进行OR运算时使用find和null

我想过滤我的数据库中的Null,0或''的某些字段.不幸的是,在IN条件下使用NULL无法返回任何内容......我相信这是由于SQL中的NULL比较评估为UNKNOWN.例如:

$filterField = $this->Model->find('list', array(
     'fields' => array('id','name'),
     'recursive' => 0,
     'conditions' => array('Model.related_string' => array(Null, 0, '')),
     'order' => array('Model.name ASC') 
     )
  );
Run Code Online (Sandbox Code Playgroud)

这始终不返回任何错误和零行,因为生成的查询具有SELECT ... WHERE 'Model'.'related_string' IN (NULL, 0, '').但是,如果我想单独OR OR条件,我似乎无法使用PHP的数组语法.我会覆盖这些值.例如:

          $conditions['OR'] = array(
             'Model.related_string' => array('', 0),
             'Model.related_string' => NULL);
Run Code Online (Sandbox Code Playgroud)

失败.这将仅在覆盖"Model.related_string"键的值时搜索NULL条目.我是不是写了两个发现?

cakephp

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

使 NERDTree 打开光标所在的文件

我发现 NERDTree 非常烦人的一件事是,当我打开一个五分钟前刚刚查看的文件时,该文件是在最开始打开的,而不是光标所在的位置。

如果我使用 :b 缓冲区列表打开文件(它已经打开过一次),我就没有这个问题,因为我被直接传送到我的光标最后一个位置。这很有帮助,因为我的源文件很大。

有没有办法让 NERDTree 先在缓冲区列表中查看文件是否已经打开?或者也许有其他方法可以解决我的问题?

vim nerdtree

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

为什么“git ls-files -s”和“git log”输出不同的SHA哈希?

在同一个文件上使用 'git ls-files -s' 和 'git log' 时,我得到不同的 SHA 哈希值。以 repo https://github.com/preservim/nerdtree 中的文件 lib/nerdtree/nerdtree.vim ,标签 6.10.5 为例。

命令git log lib/nerdtree/nerdtree.vim产生,

commit 593c16add35a5461f189b8189abe219f7bbbd604 (tag: 6.10.5)

但命令git ls-files -s lib/nerdtree/nerdtree.vim产生,

100644 61a11a96ba44c7b1bf0472b598f2c967b2dce9f2 0 lib/nerdtree/nerdtree.vim

如果我尝试检出 'git log' 返回的 SHA,则该命令会成功。如果我尝试检查“git ls-files -s”返回的 SHA,则会产生致命错误:

git checkout 61a11a96ba44c7b1bf0472b598f2c967b2dce9f2 lib/nerdtree/nerdtree.vim

fatal: reference is not a tree: 61a11a96ba44c7b1bf0472b598f2c967b2dce9f2

为什么 'git ls-files -s' 和 'git log' 为同一个文件生成不同的 SHA 哈希?

注意:我四处寻找答案并找到了这个线程:Git - 在 index 中找到单个文件的 SHA1。这个线程解释了为什么 'git hash-object' 和 'git ls-files -s' …

git hash sha

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

标签 统计

cakephp ×1

git ×1

hash ×1

negative-lookahead ×1

nerdtree ×1

python ×1

regex ×1

sha ×1

vim ×1