小编tob*_*ies的帖子

"现代"正则表达的认识力

真正的现代正则表达式真正识别哪种语言?

每当存在具有反向引用的无限长度捕获组(例如(.*)_\1)时,正则表达式现在匹配非常规语言.但是,就其本身而言,这还不足以匹配诸如S ::= '(' S ')' | ?匹配对的parens的无上下文语言.

递归正则表达式(对我来说是新的,但我确信存在于Perl和PCRE中)似乎至少能识别出大多数CFL.

有没有人在这方面做过或读过任何研究?这些"现代"正则表达的限制是什么?对于LL或LR语法,他们是否严格认可或严格低于CFG?或者是否存在可以被正则表达式识别而不是CFG 而且相反的语言?

非常感谢与相关论文的链接.

regex theory perl language-theory context-free-grammar

82
推荐指数
1
解决办法
6969
查看次数

GHC Haskell目前的约束系统有什么问题?

我听说Haskell的"破坏"约束系统存在一些问题,如GHC 7.6及以下版本.它出什么问题了?是否有可比的现有系统克服了这些缺陷?

例如,edwardk和tekmo都遇到了麻烦(例如来自tekmo的评论).

haskell typeclass

42
推荐指数
2
解决办法
2497
查看次数

如何检查变量是否是python中的特定类?

当我打印出来时,我有一个变量"myvar" type(myvar)

输出是:

<class 'my.object.kind'>
Run Code Online (Sandbox Code Playgroud)

如果我有10个变量的列表,包括字符串和那种变量..如何构造一个if语句来检查列表"mylist"中的对象是否是<type 'my.object.kind'>

python

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

在shell中自定义选项卡完成

这可能比"自定义标签完成"有更好的名称,但这是场景:

通常,当我在命令行并输入命令,然后输入{TAB}两次时,我会获得当前目录中所有文件和子目录的列表.例如:

[user@host tmp]$ cat <TAB><TAB>
chromatron2.exe                  Fedora-16-i686-Live-Desktop.iso  isolate.py
favicon.ico                      foo.exe                          James_Gosling_Interview.mp3
Run Code Online (Sandbox Code Playgroud)

但是,我注意到至少有一个程序以某种方式过滤了这个列表:wine.考虑:

[user@host tmp]$ wine <TAB><TAB>
chromatron2.exe  foo.exe
Run Code Online (Sandbox Code Playgroud)

它有效地过滤了结果*.exe.

认为它可能是负责过滤的某种包装脚本,a a whichfilea结果wine不是脚本而是可执行文件.

现在,我不知道这个"过滤器"是否以某种方式编码在程序本身中,或者在默认的wine安装过程中以其他方式指定,所以我不确定这个问题是否更适合stackoverflow或超级用户,所以我是我的手指交叉扔在这里.如果我猜错了,我道歉.(另外,我检查了一些类似的问题,但大多数都是无关紧要的,或者涉及编辑shell配置.)

所以我的问题是,这个"过滤"是如何完成的?提前致谢.

linux bash shell tab-completion bash-completion

14
推荐指数
3
解决办法
9959
查看次数

简写http:// as //用于脚本和链接标签?有人看过/使用过吗?

问题如下:

如果您使用addthis(分享按钮)查看任何网站...

一旦你浮动addthis按钮,所有所需的资产加载使用firebug或chrome检查器(不是源,屏幕上的实际文档......对象检查器)查看文档的主体.你会注意到addthis自动加载的附加资产看起来像这样:

<script type="text/javascript" src="//s7.addthis.com/static/r07/menu78.js"></script>
<link rel="stylesheet" type="text/css" href="//s7.addthis.com/static/r07/widget61.css" media="all">
Run Code Online (Sandbox Code Playgroud)

在上面的标签中http://的简短处理是什么?

以前有人用过吗?它有'官方'名称吗?如何跨浏览器兼容这种简短处理http协议的方法?

是的,我知道这会破坏爬虫/ seo的东西,但我正在考虑开始在无法访问(主要是,js处理的东西)机器人的情况下使用它.

好的还是坏的?

html javascript protocols http shorthand

9
推荐指数
2
解决办法
3744
查看次数

是否有相当于 zsh 的文件类型通配的 bash?

在 zsh 中,您可以使用文件类型断言来限定 glob,例如*(/)仅匹配目录、*(.)仅匹配普通文件,有没有一种方法可以在 bash 中执行相同的操作而无需求助于 find?

bash glob

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

防止大写

我想阻止用户在表单输入中输入大写文本!! 我尝试删除最后一个字符,如果它是大写的,但在删除之前出现了字符.

有没有办法阻止文本首先进入输入?

到目前为止,这是我的代码:

$('#s').keyup(function (){
    var lastChar = $('#s').val().substr($('#s').val().length - 1);
    if(lastChar.match('[A-Z]'))
    {
        $('#s').val($('#s').val().slice(0,-1));
    }
});
Run Code Online (Sandbox Code Playgroud)

有任何想法吗 ??谢谢 !!

html jquery

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

Python:Json使用namedtuple,dates对嵌套的数据结构进行编码

我有一个嵌套的Python数据结构,其中带有datetime.datetime对象和namedtuples的内容如下:

from datetime import datetime as dt
from datetime import timedelta
from collections import namedtuple
nt = namedtuple('n', 'name, contact')
f1 = nt('jules', '1234')
f2 = nt('dan', '5678')
x = [
    [dt.now() + timedelta(minutes=1), f1],
    [dt.now() + timedelta(hours=1), f2],
    ]
Run Code Online (Sandbox Code Playgroud)

和一个编码器是这样的:

import json
class TestEncoder(json.JSONEncoder):
    def default(self, obj):
        if hasattr(obj, 'isoformat'):
            return obj.isoformat()
        else:
            return json.JSONEncoder.default(self, obj)
Run Code Online (Sandbox Code Playgroud)

print json.dumps(x, cls=TestEncoder) 输出:

[["2012-06-21T00:48:03.296381", ["jules", "1234"]],
 ["2012-06-21T01:47:03.296423", ["dan", "5678"]]]
Run Code Online (Sandbox Code Playgroud)

我想将namedtuples转换为dict(大概使用namedtuple ._asdict()方法),以获得以下输出:

[["2012-06-21T00:48:03.296381", {"name":"jules", "contact":"1234"}],
 ["2012-06-21T01:47:03.296423", {"name":"dan", "contact":"5678"}]]
Run Code Online (Sandbox Code Playgroud)

如何保留常规数据结构,但是json将namedtuples转储为dict?

python datetime json namedtuple

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

创建无需重新加载即可更新的页面

我正在讨论我应该学习什么来实现这一目标。主要是如果我从数据库中获取一堆信息加载到页面上,那么操作页面而不需要重新加载的最佳方法是什么。最好使用 XML 之类的东西,还是我应该使用其他东西。我知道其中很多都使用 HTML Dom 和 XML Dom,但我还不想开始学习我不需要的东西。

html xml ajax dom

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

javascript'或'声明

var NavAxis='yx';
var url1 = 'file:///C:/Users/Luke/Desktop/Senior%20Project/index.html#/page4'
var url2 = 'file:///C:/Users/Luke/Desktop/Senior%20Project/index.html#/page5'   

if(location.href == (url1 || url2)){
      NavAxis='xy';
}else{
       NavAxis='yx';
} 
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?我希望它是如此,如果URL是那些声明的NavAxis更改为'xy'

javascript variables if-statement

0
推荐指数
3
解决办法
6264
查看次数

如何在每个例程调用 api 的情况下并行运行 10000 个 goroutines?

我有以下代码,我试图在其中调用 api 10000 次,但出现错误:

package main

import (
    "fmt"

    "net/http"
    "runtime"
    "sync"
    "time"
)

func main() {

    nCPU := runtime.NumCPU()
    runtime.GOMAXPROCS(nCPU)

    var wg sync.WaitGroup
    totalRequests := 100000
    wg.Add(totalRequests)

    fmt.Println("Starting Go Routines")

    start := time.Now()
    total := 0

    for i := 0; i < totalRequests; i++ {

        go func(current int) {
            defer wg.Done()

            startFunc := time.Now()
            _, err := http.Get("http://127.0.0.1:8080/event/list")
            // resp, err := http.Get("https://graph.facebook.com/v2.4/me" + "?fields=id%2Cname&access_token=" + "CAACEdEose0cBAEpQvcsvVMQu5oZCyyDjcEPQi9yCdiXimm4F0AYexGHPZAJHgpyrFOJN5X1VMcicNJjlkaCquUqHMZAfRrtxx6K9cRIROrA0OmbqAqCcg8ZA3qJZCHCl68I1n4LtFb5qxPcotlP5ne5PBakK0OUa7sc6FAOWwByOnFtNZBpIe8XDeM4YFa33sDfftVUpZCoBgZDZD")

            if err != nil {
                fmt.Println(err)
            }
            // defer resp.Body.Close()
            elapsedFunc := …
Run Code Online (Sandbox Code Playgroud)

api concurrency go goroutine

0
推荐指数
1
解决办法
1887
查看次数