小编abh*_*man的帖子

为什么这需要很长时间才能匹配?这是一个错误吗?

我需要匹配Web应用程序中的某些URL,即/123,456,789编写此正则表达式以匹配模式:

r'(\d+(,)?)+/$'
Run Code Online (Sandbox Code Playgroud)

我注意到它似乎没有评估,即使在测试模式几分钟后:

re.findall(r'(\d+(,)?)+/$', '12345121,223456,123123,3234,4523,523523')
Run Code Online (Sandbox Code Playgroud)

预期的结果是没有匹配.

但是,此表达式几乎立即执行(请注意尾部斜杠):

re.findall(r'(\d+(,)?)+/$', '12345121,223456,123123,3234,4523,523523/')
Run Code Online (Sandbox Code Playgroud)

这是一个错误吗?

python regex performance state-machine

50
推荐指数
3
解决办法
4814
查看次数

Cloud Spanner-“ SHOW TABLES”的等效语法?

目前尚不清楚如何运行查询(或进行API调用)以列出所有表。使用Spanner可以做到吗?

google-cloud-platform google-cloud-spanner

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

在Lambda中捕获值而不是引用

我对Eli Bendersky给出的这个例子感到有些惊讶(http://eli.thegreenplace.net/2015/the-scope-of-index-variables-in-pythons-for-loops/)

>>> def foo():
...     lst = []
...     for i in range(4):
...         lst.append(lambda: i)
...     print([f() for f in lst])
...
>>> foo()
[3, 3, 3, 3]
Run Code Online (Sandbox Code Playgroud)

但是当我想到它时,它有一定道理 - lambda正在捕捉对i的引用,而不是我的价值.

所以解决这个问题的方法如下:

>>> def foo():
...     lst = []
...     for i in range(4):
...         lst.append((lambda a: lambda: a)(i))
...     print([f() for f in lst])
...
>>> foo()
[0, 1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

似乎这个工作的原因是,当我被提供给外部lambda时,外部lambda创建一个范围并取消引用i,将a设置为i.然后,返回的内部lambda保持对a的引用.

这是正确的解释吗?

python lambda python-2.7

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

交叉表故障("返回和sql元组描述不兼容")

我正在尝试计算表上的交叉表(恰好是一个简单的物化视图,但这应该无关紧要):

user=# select * from data;
 region |    date    | sum
--------+------------+-----
 East   | 2010-06-30 |  22
 East   | 2010-01-31 |  32
 East   | 2010-02-25 |  12
 North  | 2010-01-31 |  34
 North  | 2010-02-25 |  88
 South  | 2010-01-31 |  52
 South  | 2010-02-25 |  54
 South  | 2010-06-30 |  11
 West   | 2010-06-30 |  15
 West   | 2010-02-25 |  37
 West   | 2010-01-31 |  11
(11 rows)
Run Code Online (Sandbox Code Playgroud)

当我尝试使用以下表达式计算数据交叉表时,出现错误:

user=# SELECT * FROM
       crosstab('select region, date, sum from x …
Run Code Online (Sandbox Code Playgroud)

postgresql pivot crosstab

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

launchd:管理Java Jar

我有以下的launchd配置(存储在acme.plist),该加载和开始使用launchctl load acme.plistlaunchctl start acme.plist分别.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.acme</string>

    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/java</string>
        <string>-jar /usr/local/acme/acme-latest.jar</string>
    </array>

    <key>StandardErrorPath</key>
    <string>/tmp/acme-error</string>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

每当我尝试运行它时,我会得到以下内容/tmp/acme-error:

Unrecognized option: -jar /usr/local/acme/acme-latest.jar
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Run Code Online (Sandbox Code Playgroud)

但是从bash运行时我绝对没有问题.有任何想法吗?

java macos launchd launchctl

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