"图灵完成"的含义是什么意思?
你可以给出一个简单的解释,而不会涉及太多的理论细节吗?
据我所知,CSS不是图灵完整的.但我对CSS的了解非常有限.
在发现Boost预处理器的功能后,我发现自己在想:C99预处理器Turing是否完整?
如果没有,缺少什么不符合资格?
最近在工作中,我一直在从Makefile转换到另一种构建系统.我在一些地方看到了一些非常多毛的Make代码,使用了功能映射,过滤器和foreach结构.这让我感到惊讶,因为我认为构建脚本应尽可能具有声明性.
无论如何,这让我想到:是Makefile语言(说最新的GNU make具体)Turing完成了吗?
我有一个包含大量C文件的巨型C项目.我必须找到所有内循环.我确信项目中没有任何O(n³)块,因此只能找到O(n²)-compexity块(循环中的循环).
是否可以使用grep找到所有内部循环?如果是,我可以使用什么正则表达式来查找所有类型的内部循环,例如{for,for},{while,for},{for,while},{do,while}等等?如果没有,是否有任何简单的unix-way方法(可能是多个greps或一种awk)?
我正在尝试实现文本聚类算法.该算法通过用正则表达式替换它们来聚类相似的原始文本行,并聚合与每个正则表达式匹配的模式的数量,以便提供输入文本的简洁摘要,而不是显示来自输入文本的重复模式.在这次尝试中,我遇到了寻找一个正则表达式是否覆盖另一个正则表达式的需要.
假设我们关注仅约与"*"和"+"外卡,即"*"意味着一个字母的零个或多个字符的字符串,而"+"代表一个字母的1点或多个正好正则表达式.还假设字符集为ASCII.
例如:
1. AB covers AB
This is straightforward.
2. ABC* covers ABC
Because ABC* can generate: ABC, ABCC, ABCCC etc.
3. A*B+C* covers AB+C*
Because A*B+C* can generate ABBC, AABBC, AABBCC etc. which covers
all strings generated by AB+C*.
4. A+M+BC* covers AMM+B+C+M+BC*
Similar to case [3] above.
Run Code Online (Sandbox Code Playgroud)
基本上我正在寻找以下方法的有效实现,该方法告诉strA(可能包含正则表达式)是否覆盖了strB(可能包含正则表达式).请注意,还应该有一种方法可以在输入字符串strA和strB中转义正则表达式字符'*'和'+'.
C++中的方法签名:
bool isParentRegex(const string& strA, const string& strB)
Run Code Online (Sandbox Code Playgroud)
我的想法是实现需要一个递归方法,它可能有点复杂.但我很想知道我是否可以重用现有的实现而不是重新发明轮子,或者是否有任何其他直接的方法来实现它.
是否可以检查给定的正则表达式是否匹配任何字符串?具体来说,我正在寻找一个matchesEverything($regex)返回true 的函数iff $regex将匹配任何字符串.
我想这相当于问,"给定正则表达式r,是否存在不匹配的字符串r?" 如果不在"所有字符串"的集合上放置边界,我认为这是不可解决的.即,如果我认为字符串永远不会包含"blahblah",那么我可以简单地检查是否r匹配"blahblah".但是,如果没有这样的界限怎么办?我想知道这个问题是否可以解决,检查正则表达式r是否相当于.*.
我正在解析一个包含如下行的文件
type("book") title("golden apples") pages(10-35 70 200-234) comments("good read")
我想把它分成不同的字段.
在我的示例中,有四个字段:类型,标题,页面和注释.
分裂后的期望结果是
['type("book")', 'title("golden apples")', 'pages(10-35 70 200-234)', 'comments("good read")]
很明显,简单的字符串拆分不起作用,因为它只会在每个空间分开.我想拆分空格,但保留括号和引号之间的任何内容.
我怎么能分开这个?