真正的现代正则表达式真正识别哪种语言?
每当存在具有反向引用的无限长度捕获组(例如(.*)_\1)时,正则表达式现在匹配非常规语言.但是,就其本身而言,这还不足以匹配诸如S ::= '(' S ')' | ?匹配对的parens的无上下文语言.
递归正则表达式(对我来说是新的,但我确信存在于Perl和PCRE中)似乎至少能识别出大多数CFL.
有没有人在这方面做过或读过任何研究?这些"现代"正则表达的限制是什么?对于LL或LR语法,他们是否严格认可或严格低于CFG?或者是否存在可以被正则表达式识别而不是CFG 而且相反的语言?
非常感谢与相关论文的链接.
我听说Haskell的"破坏"约束系统存在一些问题,如GHC 7.6及以下版本.它出什么问题了?是否有可比的现有系统克服了这些缺陷?
例如,edwardk和tekmo都遇到了麻烦(例如来自tekmo的评论).
当我打印出来时,我有一个变量"myvar"
type(myvar)
输出是:
<class 'my.object.kind'>
Run Code Online (Sandbox Code Playgroud)
如果我有10个变量的列表,包括字符串和那种变量..如何构造一个if语句来检查列表"mylist"中的对象是否是<type 'my.object.kind'>?
这可能比"自定义标签完成"有更好的名称,但这是场景:
通常,当我在命令行并输入命令,然后输入{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 which和filea结果wine不是脚本而是可执行文件.
现在,我不知道这个"过滤器"是否以某种方式编码在程序本身中,或者在默认的wine安装过程中以其他方式指定,所以我不确定这个问题是否更适合stackoverflow或超级用户,所以我是我的手指交叉扔在这里.如果我猜错了,我道歉.(另外,我检查了一些类似的问题,但大多数都是无关紧要的,或者涉及编辑shell配置.)
所以我的问题是,这个"过滤"是如何完成的?提前致谢.
问题如下:
如果您使用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处理的东西)机器人的情况下使用它.
好的还是坏的?
在 zsh 中,您可以使用文件类型断言来限定 glob,例如*(/)仅匹配目录、*(.)仅匹配普通文件,有没有一种方法可以在 bash 中执行相同的操作而无需求助于 find?
我想阻止用户在表单输入中输入大写文本!! 我尝试删除最后一个字符,如果它是大写的,但在删除之前出现了字符.
有没有办法阻止文本首先进入输入?
到目前为止,这是我的代码:
$('#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)
有任何想法吗 ??谢谢 !!
我有一个嵌套的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?
我正在讨论我应该学习什么来实现这一目标。主要是如果我从数据库中获取一堆信息加载到页面上,那么操作页面而不需要重新加载的最佳方法是什么。最好使用 XML 之类的东西,还是我应该使用其他东西。我知道其中很多都使用 HTML Dom 和 XML Dom,但我还不想开始学习我不需要的东西。
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'
我有以下代码,我试图在其中调用 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)