小编Kev*_* G.的帖子

写成长正则表达式,嵌入式注释的成语?

有些语言具有在长正则表达式中嵌入换行符和空格的功能,以使它们更具可读性

( yogi | booboo )   # match something
\s
( the \s)?          # optional article
bear                # bears are not Mr. Ranger
Run Code Online (Sandbox Code Playgroud)

AFAICT golang并没有这样的选择,是这样吗?

缺乏这一点,组合正则表达式是唯一明确的选择吗?还是有另一个成语?我现在没有找到任何长regexen的例子.

regex go

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

在Perl中如何在不使用XS的情况下写入调用者的变量?

我正在编写一些旧代码的单元测试,并发现需要围绕Apache2 :: Request的read()方法编写一个模拟

my $r = Apache2::Request->new(...);

$r->read(my $buf, $len);
Run Code Online (Sandbox Code Playgroud)

有没有办法在Perl中编写一个函数来填充$buf?我很确定这样做的唯一方法是使用带有**的XS代码,但我想我至少先问一下.

使用Apache2 :: Request直接导致这种情况,因此我希望嘲笑它.

perl: symbol lookup error: .../APR/Request/Apache2/Apache2.so: 
undefined symbol: modperl_xs_sv2request_rec
Run Code Online (Sandbox Code Playgroud)

perl mocking mod-perl2

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

application/pdf content-type http响应头的正确charset是什么?

我想看看这是否正确作为HTTP响应标头

  Content-Type: application/pdf; charset=ISO-8859-1
Run Code Online (Sandbox Code Playgroud)

或者我们应该发出这个

  Content-Type: application/pdf
Run Code Online (Sandbox Code Playgroud)

我相信后者是正确的,鉴于此:

"charset"参数与某些媒体类型一起用于定义数据的字符集(第3.4节).当
发送方未提供显式字符集参数时,"文本"
类型的媒体子类型被定义为在通过HTTP接收时具有默认字符集值"ISO-8859-1".除"ISO-8859-1"或其
子集之外的字符集中的数据必须用适当的字符集值标记.
rfc2068 HTTP/1.1

rfc3778应用程序/ pdf媒体类型根本没有提到字符集.

这个SO讨论是我开始的地方,但不是专门针对application/pdf: 对于非文本媒体类型,发送带有Content-Type标头的charset参数是绝对错误的吗?

任何人都可以确认或否认或指向更好的RFC吗?

pdf content-type http http-headers

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

Perl将文件句柄就地/流式传输从cp1252转换为utf-8?

我在文件中打开了一个文件句柄,其中包含cp1252个字符.我想将这个打开的文件句柄提供给一个期望原始utf8字节的库,它将通过网络发送它们.

这种天真的方法是将文件写入具有正确编码的第二个文件,并将第二个文件句柄提供给库:

use Fcntl qw/SEEK_SET/;

open my $fh_1252, "<:encoding(cp1252)", "1252.txt" || die $!;

open my $fh_utf8, "+>:encoding(utf8)", "utf8.txt"  || die $!;

while (<$fh_1252>){ print $fh_utf8 $_ };

seek($fh_utf8, 0, SEEK_SET);

# now give $fh_utf8 to the library for transmission
Run Code Online (Sandbox Code Playgroud)

这似乎是一堆额外的工作.有没有办法简单地流动它?我知道我可以使用IO :: Scalar来删除写入磁盘的需要,但我仍然需要将整个内容读入内存.似乎有一种方法可以使用管道来传输它,但我现在还没想办法做到这一点.

perl utf-8

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

正则表达式中(.)+的行为是什么?

我们刚刚在一些代码中发现了一个错误,程序员已经使用了相当于(.)+他们应该使用的时间(.+).一个简单的修复,但我们无法解释的行为(.)+.任何人都可以解释为什么这匹配"e",最后一个字母,而不是"b",正则表达式中"a"之后的第一个字母?你会怎么解释(.)+

my $s = 'abcde';

if ($s =~ m{ a (.)+  }x ){
    print "s '$s' matched '$1'\n";
}else{
    print "total match fail\n";
}

__END__
output:
s 'abcde' matched 'e'
Run Code Online (Sandbox Code Playgroud)

regex perl

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

django + mod_wsgi需要线程编程规则吗?

我们在mod_wsgi下推出了我们的第一个django应用程序

`WSGIDaemonProcess our-appname processes=6 threads=15'`
Run Code Online (Sandbox Code Playgroud)

我们正在讨论我们的Python代码以及它使用的Redis和Postgres库是否需要是线程安全的.

从我从阅读mod_wsgi文档中可以看出,即使apache worker正在处理具有多个apache线程的请求,我们的python代码也是用于单线程的所有意图和目的.我没有在mod_wsgi文档上看到任何警告"小心!!你现在必须担心全局数据和线程安全!" 但也没有明确的"不要担心线程没有任何问题".

我们在python代码中没有使用线程显式做任何事情,在我们编写的任何内容中都没有提到它们.

但是有些人认为,既然我们正在运行,threads=15那么我们现在处于多线程世界.

谁能澄清这里到底发生了什么?我们的Python代码现在是否通过相同的数据执行多个执行线程,而不是以前的代码?

python django mod-wsgi thread-safety

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

如何使sysfs更改持续在centos 7(systemd)

我试着在CentOS 7上修复苹果键盘上的fn键

$ cat /etc/modprobe.d/hid_apple.conf
options hid_apple fnmode=2
Run Code Online (Sandbox Code Playgroud)

然而在重启之后

$ cat /sys/module/hid_apple/parameters/fnmode
1
Run Code Online (Sandbox Code Playgroud)

互联网上的建议包括运行update-initramfs,这在Centos 7上似乎不存在,并在/etc/rc.local中执行"echo 2 >>/sys/module/hid_apple/parameters/fnmode",其中在systemd下,课程根本不存在.

什么是坚持这种设置的正确方法?

linux centos systemd

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