小编Ste*_*hen的帖子

正则表达式:\w EXCEPT 下划线(添加到类,然后从类中排除)

这个问题适用于 Python 3 正则表达式。我认为它也可能适用于其他语言。

这个问题很容易被误解,所以我会小心地描述它。

作为背景,\w意思是“一个字字”。在某些情况下,Python 3 会将其视为只是,[a-zA-Z0-9_]但如果正则表达式是一个字符串,它将是 Unicode 感知的,因此这\w意味着“任何 Unicode 单词字符”。这通常是一件好事,因为人们使用不同的语言,并且很难同时[a-zA-Z0-9_]为所有语言构建一个范围。\w因此,我认为在多语言环境中最有用。

但是有一个问题:如果您不想匹配下划线,因为您认为它们不是真正的单词字符(对于您的特定应用程序)怎么办?

如果您只专注于英语应用程序,最好的解决方案可能是\w完全跳过并只使用[a-zA-Z0-9]. 但是,如果您专注于全局应用程序并且不想要下划线,那么您似乎处于非常不幸的境地。我还没有做过,但我认为编写一个同时代表 100 种语言的范围真的很难,这样你就可以避免使用下划线。

所以我的问题是:有什么方法可以\w用来匹配任何 Unicode 单词字符,但不知何故也从类中排除下划线(或其他一些不需要的字符)?我不认为我见过这样的描述,但它会非常有用。类似的东西[\w^_]。当然,这实际上不会起作用,但我的意思是“使用以 表示的所有内容开头的字符类,\w然后继续并从该类中删除下划线。”

想法?

python regex python-3.x

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

我们如何使用 python sdk 在 Apache Beam 中读取带有外壳的 CSV 文件?

我正在阅读一个逗号分隔的 CSV 文件,其中的字段用双引号括起来,其中一些字段的值中也有逗号,例如: "abc","def,ghi","jkl"

有什么方法可以使用 Apache Beam 将此文件读入 PCollection 吗?

python apache-beam apache-beam-io

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

GCP 中转发规则、目标 HTTP 代理、网址映射和后端服务之间的关系

如果您有 HTTP 服务,我是 GCP 的新手,并且对负载平衡设置感到非常困惑(我在这里问了一个关于 TCP 负载平衡的不同问题:GCP 中目标池的目的)。

看起来,如果你有一个使用 HTTP 的服务并且你想使用负载平衡,你必须创建很多不同的组件来实现它。

在我在 Qwiklabs ( https://google.qwiklabs.com/focuses/558?parent=catalog )中学习的教程中,您需要进行设置以使请求像这样流动:转发规则 -> 目标 HTTP 代理-> URL Map -> 后端服务 -> 托管实例组。但是,它并没有真正解释这些事物之间的关系。

我认为托管实例组的目的很明确,但我不明白其他人之间的关系或他们的目的。您能否为其他组件提供一个简单的定义并描述它们之间的不同之处?

google-cloud-platform

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

使用“with dag as DAG(...)”子句创建 DAG 有好处吗

我按如下方式创建 Airflow DAG:

dag = DAG(...)
Run Code Online (Sandbox Code Playgroud)

但在多个教程和课程中,我看到他们使用with ... as这样的子句:

with DAG(...) as dag:
    # Code that will use the dag variable.
Run Code Online (Sandbox Code Playgroud)

我想这样,DAG实例将在调度程序执行代码块后被销毁,但是这样做有真正的好处吗?我找不到任何讨论此问题的文档。

airflow airflow-scheduler

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

使用 iPython/Spyder 从 Python 退出的问题

这个问题已经被问过,但我已经尝试了相关问题的解决方案,如无济于事。

我在使用 Python 的exit命令时遇到了问题,并且我已经排除了由 vanilla Python 3 运行的代码的问题。当我使用 iPython 或在 Spyder 的 iPython 控制台中运行它时,问题就出现了。

当我只使用一个简单的退出命令时,我收到错误:

NameError: name 'exit' is not defined
Run Code Online (Sandbox Code Playgroud)

我已经按照另一个链接的建议导入了 sys 。唯一有效的是尝试 sys.exit() 在这种情况下我得到:

An exception has occurred, use %tb to see the full traceback.

SystemExit

C:\Users\sdewey\AppData\Local\Continuum\Anaconda3\lib\site-
packages\IPython\core\interactiveshell.py:2870: UserWarning: To exit: use 
'exit', 'quit', or Ctrl-D.
  warn("To exit: use 'exit', 'quit', or Ctrl-D.", stacklevel=1)
Run Code Online (Sandbox Code Playgroud)

我只说这种“有效”是因为错误消息较小,因此不那么烦人:)。

有任何想法吗?似乎是 iPython 的问题。我在 Jupyter(使用 iPython)中遇到了一个不同的问题,其中完全忽略了退出,我在这里单独发布了这个问题

ipython spyder

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

为什么CPAN上还提供了一些核心Perl模块?

例如,我认为Encode模块被认为是一个核心模块,随每个Perl副本一起提供.它在Perldoc上有自己的页面:

https://perldoc.perl.org/Encode.html

...但它也可以在CPAN上使用:

http://search.cpan.org/~dankogai/Encode-2.92/Encode.pm

从浏览这两个文档开始,它们似乎包含相同的文本.那么为什么要把它放在两个地方呢?是否可以使用CPAN查找"任何Perl模块"的文档?

perl cpan

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

这个Canary :: Stability咆哮是一个合理的问题吗?

我今天正在安装新的CPAN模块,事实证明JSON :: XS模块显示了自己的警告/咆哮,关于使用Perls over 5.22.似乎作者厌倦了据称在此之后引入Perl的后向不兼容的更改,并决定制作一个模块专门用于警告人们潜在的不兼容性,警告Perl超过5.22,并推广Perl的独立分支致力于稳定性.

作为一个卑微的普通用户,我不确定我应该多么惊慌.例如:这只是一个用户/模块抱怨,还是比这更大?在5.22之后Perl向后兼容性是否存在严重问题?

我想这是一个有点主观的问题,但是通过这样做,作者已经解决了每个人的问题(或者:已经使稳定性分支成为每个人的解决方案,取决于你采取的方式).而且由于我需要为我正在开发的大型移植项目选择Perl版本,这对我来说是一个非常重要的问题.

这是警告:

Canary ::稳定性兼容性和支持检查

嗨!

我尽我所能提供可预测和可靠的软件.

然而,在最近的版本中,P5P(维护perl)一直在引入有时微妙的回归,有时是灾难性的回归,通常用于个人偏好,对现有代码几乎没有或根本不关心,最明显的是CPAN.

出于这个原因,我很难保持过去我自己承诺的可靠性和支持水平,至少对于一些perl版本:我根本无法继续解决新的bug或gotituous不兼容性,反过来,你可能会遇到意想不到的问题.

因此,我已经介绍了支持和兼容性检查,其结果如下,以及常见问题解答和一些建议.

此检查只是为了让您知道可能存在风险,因此您可以对如何继续进行判断调用 - 它不会使模块无法安装或工作.

稳定的金丝雀说:(没有,它被恶劣的天气赶走了)

看来你正在运行perl版本5.026000,可能是"官方"或"标准"版本.虽然这样做没有任何问题,但JSON :: XS不支持标准的perl版本5.022及更高版本.虽然这可能是致命的,但也可能是正确的 - 如果遇到问题,您可能希望降级perl或切换到稳定性分支.

如果一切正常,您可以忽略此消息.

稳定性金丝雀迷你常见问题:

我需要做什么吗?幸运的是,没有.虽然已知某些发行版已经失败,但大多数发行版应该可行.此消息提醒您JSON :: XS不支持您的perl,如果出现问题,您需要降级或降级到perl版本的稳定版本,或者只是承担后果.

这个金丝雀的东西是什么?它的目的是检查JSON :: XS相对于perl版本的支持状态.

这个"稳定分支"是什么?它是schmorp官方perl的一个分支或分支,用于提高稳定性和与现有模块的兼容性.

如何在自动安装时跳过此提示?在您的环境中设置PERL_CANARY_STABILITY_NOPROMPT = 1.更多信息在Canary :: Stability手册页中.

此FAQ的长版本:http://stableperl.schmorp.de/faq.html Stability Branch主页:http://stableperl.schmorp.de/

perl cpan

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

在Perl中STDOUT-> autoflush(1)会做什么?

我在Perl中找到了有关自动刷新的各种信息,但是找不到任何有关格式完全相同的行的信息:

STDOUT->autoflush(1);
Run Code Online (Sandbox Code Playgroud)

这包含在我正在分析的程序中,我想更好地了解它的作用。程序开始时也有以下内容:

use IO::Handle;
Run Code Online (Sandbox Code Playgroud)

...我认为可能是相关的,但它在其文档中也未提及此方法。

perl

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

是否允许将管道传递给构造函数?

我试图在Perl中做一些非常奇特的事情,我想我正在遭遇后果.实际上,我不知道我想做的事情是否可行.

我的主程序创建了这样的管道:

pipe(my $pipe_reader, my $pipe_writer);
Run Code Online (Sandbox Code Playgroud)

(最初它是管道(PIPE_READER,PIPE_WRITER)但我在尝试调试时改为常规变量)

然后它分叉,但我认为这可能与此无关.孩子这样做:

my $response = Response->new($pipe_writer);
Run Code Online (Sandbox Code Playgroud)

Response的构造函数是简单的:

sub new {
    my $class = shift;
    my $writer = shift;

    my $self = {
        writer => $writer
    };
    bless($self, $class);
    return($self);
 }
Run Code Online (Sandbox Code Playgroud)

然后孩子会写下它的回答:

$response->respond(123, "Here is my response");
Run Code Online (Sandbox Code Playgroud)

回复代码如下:

sub respond {
    my $self = shift;
    my $number = shift;
    my $text = shift;
    print $self->{writer} "$number\n";
    print $self->{writer} "$text\n";
    close $self->{writer}
}
Run Code Online (Sandbox Code Playgroud)

这会触发一个奇怪的编译错误:'找到运算符所期望的字符串...在"$ number \n"之前缺少运算符?' 在第一次印刷时.当然这是打印的正常语法,除了我有对象属性而不是普通句柄,它恰好是管道,而不是文件句柄.所以现在我想知道我是否不允许这样做.

perl

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

如何在git log中更改标签/分支名称的颜色?

运行命令时,git log --graph --oneline --all --decorate我看到的分支和标记名称都是彩色的(自从设置color.ui为以来,我一直认为auto)。我喜欢这种颜色,但是由于我有白色背景,所以很难读懂其中几种颜色,尤其是黄色。

我想更改此设置,然后发现(在Git书中的颜色下。*此处:https//git-scm.com/book/en/v2/Customizing-Git-Git-Configuration)中,您可以更改设置下color.*进一步定制Git的颜色。然而,没有4个subsettings的(branchdiffinteractivestatus)似乎影响了分支和标签名称使用git的日志的颜色。可以更改这些颜色吗?如果可以,如何更改?

git

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