当字符串'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) 我想过滤我的数据库中的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条目.我是不是写了两个发现?
我发现 NERDTree 非常烦人的一件事是,当我打开一个五分钟前刚刚查看的文件时,该文件是在最开始打开的,而不是光标所在的位置。
如果我使用 :b 缓冲区列表打开文件(它已经打开过一次),我就没有这个问题,因为我被直接传送到我的光标最后一个位置。这很有帮助,因为我的源文件很大。
有没有办法让 NERDTree 先在缓冲区列表中查看文件是否已经打开?或者也许有其他方法可以解决我的问题?
在同一个文件上使用 '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' …