小编Vla*_*eev的帖子

如何在Bash中使用反向引用

我有一个带有反向引用的正则表达式.如何在bash脚本中使用它?

比如我想打印匹配的内容(.*)

grep -E "CONSTRAINT \`(.*)\` FOREIGN KEY" temp.txt 
Run Code Online (Sandbox Code Playgroud)

如果应用它

CONSTRAINT `fk_dm` FOREIGN KEY
Run Code Online (Sandbox Code Playgroud)

我想输出

fk_dm
Run Code Online (Sandbox Code Playgroud)

regex unix grep text-processing

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

在Windows上开始使用D2

我从http://www.digitalmars.com/d/download.html抓取了"dmd D 2.0编译器1-click install for Windows" ,安装完毕,并尝试编译"D编程语言"中的hello world示例,即

import std.stdio;

void main() {
    writeln("Hello, world!");
}
Run Code Online (Sandbox Code Playgroud)

用"dmd hello.d",但遇到了:

hello.d(4): Error: undefined identifier writeln, did you mean function writefln?
hello.d(4): Error: function expected before (), not __error of type _error_
Run Code Online (Sandbox Code Playgroud)

这本书是否过时,或者安装错误,还是......?

d

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

Emacs d-mode无法处理反引号反斜杠

目前Emacs https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode无法正确突出显示

`\`
Run Code Online (Sandbox Code Playgroud)

因为它不理解单个反斜杠在这样的原始字符串文字中是自包含的.

我相信这个来自d-mode.el的摘录

(defvar d-mode-syntax-table nil
  "Syntax table used in d-mode buffers.")
(or d-mode-syntax-table
    (setq d-mode-syntax-table
     (let ((table (funcall (c-lang-const c-make-mode-syntax-table d))))
       ;; Make it recognize D `backquote strings`
       (modify-syntax-entry ?` "\"" table)

       ;; Make it recognize D's nested /+ +/ comments
       (modify-syntax-entry ?+  ". 23n"   table)
       table)))
Run Code Online (Sandbox Code Playgroud)

与这个问题高度相关.如何解决这个问题的想法?

另见:http://forum.dlang.org/post/kqzbgawuzyemcyjnsuin@forum.dlang.org

emacs elisp d syntax-highlighting string-literals

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

将字符串转换为整数类型T,检查溢出

目标是一个函数,给定包含数字的字符串和整数类型T,如果值适合没有溢出的类型,则返回成功+转换值,否则返回失败.

使用std::istringstream读取从字符串作品某些情况下,一个数字:

template<typename T>
std::pair<bool, T> decode(std::string s)
{
    T value;
    std::istringstream iss(s);
    iss >> std::dec >> value;
    return std::pair<bool, T>(!iss.fail(), value);
}

template<typename T>
void testDecode(std::string s)
{
    std::pair<bool, T> result = decode<T>(s);
    if (result.first)
        std::cout << +result.second;
    else
        std::cout << "ERROR";
    std::cout << std::endl;
}

int main()
{
    testDecode<int32_t>("12"); // 12
    testDecode<int16_t>("1000000"); // ERROR
    testDecode<int16_t>("65535"); // ERROR
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是,对于8位类型(因为它们被视为chars)失败了:

    testDecode<uint8_t>("12"); // 49 !
Run Code Online (Sandbox Code Playgroud)

负数也被错误地接受并解析为无符号类型:

    testDecode<uint16_t>("-42"); // 65494 !
Run Code Online (Sandbox Code Playgroud)

这种功能由例如std.conv.toD和str::parse …

c++ templates string-conversion

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

我可以在构造函数方法之外声明 Python 类字段吗?

我绝对是 Python 新手(我来自 Java),我对类字段有以下疑问。

考虑这样的代码:

class Toy():
    def __init__(self, color, age):
        self.color = color
        self.age = age

action_figure = Toy('red', 10)
Run Code Online (Sandbox Code Playgroud)

好的,做了什么很清楚而且很简单:

它正在定义一个玩具类。在构造方法中定义了两个字段以及如何设置字段值。最后(在“main”中)它创建了一个新的Toy实例,在构造函数调用中传递该字段的值。

好的,明白了……但我有疑问。在 Java 中定义相同的类我做这样的事情:

public class Toy {
    private String color;
    private int age;

    // CONSTRUCTOR:
    public Dog(String color, int age) {
        this.color = color;
        this.age = age;
    }
}
Run Code Online (Sandbox Code Playgroud)

好吧,它很相似,但我发现了一个很大的区别。在我的 Java conde 中,我将类字段声明为我的构造函数方法之外的变量。在 Python 中,我直接在构造函数方法中定义类字段。所以这意味着在 Java 中我可以声明 n 个类字段并使用构造函数方法只初始化这个字段的一个子集,例如这样的:

public class Toy {
    private String color;
    private int age;
    private String field3;
    private …
Run Code Online (Sandbox Code Playgroud)

python python-3.x python-object

7
推荐指数
2
解决办法
8287
查看次数

使用DOS通配符强制执行字符串的最快方法

此问题类似于盲SQL注入.目标是确定字符串的确切值,您可以做的唯一测试是查看指定的DOS样式通配符(?=任何字符,*=任何数字的任何字符)是否与字符串匹配.(所以实际上你只能访问一个bool DoesWildcardMatch(string wildcard)功能).

直截了当的方法是测试,a*, b*, c*...直到找到第一个字母,然后重复.我能想到的一些优化:

  • 搜索*a*, *b*等以确定字符集
  • *x*找到匹配时,执行divide-et-impera(*a*x*, *b*x*, ...)

string algorithm wildcard brute-force

6
推荐指数
1
解决办法
1237
查看次数

IEEE"双"的精确文本表示

我需要以人类可读的文本形式表示IEEE 754-1985双(64位)浮点数,条件是文本形式可以被解析回完全相同(逐位)的数字.

如果不打印原始字节,这可行/实用吗?如果是,那么执行此操作的代码将非常感激.

floating-point floating-accuracy ieee-754

6
推荐指数
2
解决办法
2968
查看次数

绳子的有效重新散列

给定一个绳子,假设我们需要知道它的哈希值(通过一些哈希函数传递所有叶子的连接)。

现在,当一个绳叶发生变化时,再次重新计算整条绳子的哈希值的有效方法是什么?即类似 O(log n) 而不是 O(n) 的东西。

一种方法是使用Merkle 树。但是,这会导致诸如...

  • 空的非叶节点,或具有零长度子串的叶节点,即使对有效绳索内容没有影响,也会影响散列;
  • 将子树右侧的节点移动到该子树右侧兄弟节点的左侧会影响最终的哈希值,但不会影响有效的绳索内容。

有没有更好的算法呢?散列函数不需要加密安全,只要足够好以避免可能的冲突。

algorithm hash ropes data-structures

6
推荐指数
1
解决办法
237
查看次数

如何在JDBC Spring配置中指定SQL Server的模式

我们使用org.apache.commons.dbcp.BasicDataSource作为Spring中数据源的父类.

是否可以在"url"或DBCP数据源中的另一个属性中指定要使用的模式?

sql-server spring jdbc apache-commons-dbcp

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

如何在OSX上使用D-trace获取命令参数

我正在尝试使用带有D-trace的args预览运行命令.我试过这样的事情:

sudo dtrace -n 'syscall::execve:return {printf("%s\n", curpsinfo->pr_psargs);}'
Run Code Online (Sandbox Code Playgroud)

但是在OSX上,这段代码只返回命令名而不是args.

我发现这个论坛帖子,但最后一个答案中的代码对我不起作用.

macos dtrace

5
推荐指数
1
解决办法
1300
查看次数