Questions tagged «regular-expression»

涉及使用正则表达式的代码挑战。

3
自匹配正则表达式[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 编写一个与其匹配的平凡正则表达式。 例如,#.*$将在python中的字符串之外匹配注释,直到行尾,并且还以perl regex语法匹配自身。 规则: 正则表达式必须做一些有用或实用的事情。 告诉您正在使用什么正则表达式语法(例如perl或POSIX)。 优胜者是投票最高的合规答案。 有创造力!

12
实施Glob Matcher
实现要匹配的模式和字符串的功能,如果模式与WHOLE字符串匹配,则返回true,否则返回false。 我们的全局模式语法为: ? 匹配任何一个字符 + 匹配一个或多个字符 * 匹配零个或多个字符 \ 逃脱 规则: 没有评估,没有转换为正则表达式,没有调用系统glob函数。 不需要I / O:您只需编写一个函数 最短的胜利 例子: glob('abc', 'abc') => true glob('abc', 'abcdef') => false IMPORTANT! glob('a??', 'aww') => true glob('a*b', 'ab') => true glob('a*b', 'agwijgwbgioeb') => true glob('a*?', 'a') => false glob('?*', 'def') => true glob('5+', '5ggggg') => true …

1
正则表达式为9的倍数
描述一个可以识别9的倍数的有限状态机很容易:跟踪数字总和(mod 9)并添加下一个接受的数字。这样的FSM只有9个状态,非常简单!通过FSM可识别性和常规语言之间的等效性,存在一个9的倍数的正则表达式。但是,任何此类正则表达式都可能……非常……长。与之类似,可能约为千兆字节。 在https://www.quaxio.com/triple/上有一个有效的示例,可用于3的倍数。在页面底部,作者提供了一种“手动优化”的解决方案,该解决方案比原始转换要短一些。 FSM到正则表达式。 挑战: 您必须制作一个正则表达式来检测9的倍数。由于这种正则表达式预计会很长,因此我要求您提供一个可以打印正则表达式的程序。(如果您真的想提供一个完整的正则表达式,也许将其放在其他位置并在此处链接!) 您必须能够告诉我们您程序输出的准确字符数-因此,只有在程序运行得足够快的情况下,才可以尝试尝试一定长度的所有正则表达式,直到找到有效的正则表达式,这是不可接受的运行它完成并给我们最终的正则表达式长度! 当然,点是用于具有最短的输出正则表达式,而不是基于程序长度。由于正则表达式是我要的“程序”,并且在这里方便地传输太长了,因此我仍在标记此代码高尔夫球。 规则: 输入将仅包含匹配的字符[0-9]*。 您的正则表达式应匹配 9的倍数,但不能匹配其他任何东西。并非完全由数字0-9组成且为无效输入的案例可以根据需要匹配或失败。 考虑到DFA易于识别的动机,所得的正则表达式实际上必须是更具理论性的术语中的正则表达式,也就是说,仅是封闭正则语言的运算符。确切地说,唯一允许的事情是: 文字,字符范围([ab],[a-f],[^k]),Kleene星(*),锚(^和$),通过括号分组,在交替(|),可选术语(?),一个或更多的术语(+),向前看符号((?=)),负向前看符号((?!)), lookbehinds( (?<=)),负lookbehinds( (?<!)),条件(如在https://www.regular-expressions.info/conditional.html - (?(?=test)then|else)),和有界长度的反向引用(见下文)。 那些东西例子不是不允许的: 任意长度的后向引用,前向引用,递归,子例程,循环结构,可执行代码,任何'eval'变体或用于将字符串转换为算术值的内置结构。 可以显示具有有限长度绑定字符串的反向引用是可以接受的,因为它们可以以有限状态存储并且不会改变语言的规则性。例如,正则表达式(..2.[3-5])4\1.\1是可以接受的,因为捕获组上有绑定长度\1。这是常规建筑。之类的构造(2*)0\1是不可接受的,因为捕获的组无法以有限状态存储。 您的正则表达式可以随意接受或拒绝带有多余前导零的整数。但是,"0"必须接受该字符串。

9
高尔夫对象
想象一下,我们有一个环境,它的全局范围仅包含一个称为的对象codegolf。该对象有一个名为的子对象stackexchange,该子对象具有的属性com。 访问此属性看起来像codegolf.stackexchange.com。 挑战 程序/函数的输入将是试图访问全局范围内的属性的字符串。只要找到此属性,就应打印/返回真实值。如果找不到该属性,则应打印/返回伪造的值。要注意的是:当您尝试访问不存在的对象上的属性时,您的程序应该抛出任何类型的错误¹。 为了使事情变得容易一些,您可以假设输入将始终为[a-z.],永远不会为空,永远不会有重复.的,也永远不会以开头或结尾.。codegolf.无效的输入也是如此。 测试用例 codegolf.stackexchange.com => 1 // or any other truthy value codegolf.stackexchange.net => 0 // or any other falsy value codegolf.stackexchange => 1 codegolf.foo => 0 codegolf => 1 foo => 0 codegolf.com => 0 codegolf.constructor => 0 codegolf.foo.bar => Error (since foo is undefined) codegolf.stackexchange.com.foo …

15
手动逻辑门
编写一个模拟基本逻辑门的程序。 输入:一个全大写单词,后跟2个1位二进制数字,以空格分隔,例如OR 1 0。门OR,AND,NOR,NAND,XOR,和XNOR需要。 输出:输入的逻辑门的输出将被赋予两个数字:1或0。 例子: AND 1 0成为0 XOR 0 1变得1 OR 1 1成为1 NAND 1 1成为0 这是codegolf,所以最短的代码获胜。
13 code-golf  logic-gates  hashing  code-golf  code-golf  number  array-manipulation  integer  code-golf  string  unicode  text-processing  cops-and-robbers  boggle  cops-and-robbers  boggle  code-golf  ascii-art  code-golf  word-puzzle  king-of-the-hill  python  code-golf  sequence  kolmogorov-complexity  code-golf  source-layout  code-golf  string  kolmogorov-complexity  math  number  code-golf  date  code-golf  combinatorics  recursion  game  king-of-the-hill  javascript  code-golf  array-manipulation  code-golf  radiation-hardening  self-referential  code-golf  integer  code-golf  number  code-golf  set-theory  code-golf  sequence  code-golf  string  sorting  natural-language  code-golf  decision-problem  number-theory  primes  code-golf  code-golf  ascii-art  code-challenge  array-manipulation  sorting  rubiks-cube  regular-expression  code-golf  counting  file-system  recursion  code-golf  string  kolmogorov-complexity  color  code-golf  game  code-challenge  permutations  encode  restricted-time  decode  code-golf  math  decision-problem  matrix  integer  palindrome  code-golf  matrix  statistics  king-of-the-hill  king-of-the-hill  python  card-games  code-golf  string  natural-language  code-golf  sequence  number-theory 

11
解释松散范围
解释松散范围 ListSharp是一种解释型编程语言,具有许多功能,其中一个功能是基于1索引的范围创建器,其工作方式如下: 您可以将范围定义为(INT) TO (INT)或仅定义(INT)两个int可以从min到max int32值的范围 然后,您可以使用这些范围来提取数组的元素,而不必担心会超出其边界 因此: 1 TO 5 产生: {1,2,3,4,5} 3 产生: {3} 范围可以使用AND运算符相加 1 TO 5 AND 3 TO 6 产生: {1,2,3,4,5,3,4,5,6} 记住这也适用于负数 3 TO -3 产生: {3,2,1,0,-1,-2,-3} 挑战如下: 输入值 字符数组和先前定义的range子句作为字符串 输出量 范围中基于1索引位置的元素(不存在/负索引会转换为空字符) 如何取胜 作为代码高尔夫球挑战,您应该创建具有最少字节数的程序以获胜 有人指出不存在空字符,因此您应该忽略它们(我仅在此处显示它们是为了使它们更易于理解,但却使人感到困惑) 测试用例: input array is: {'H','e','l','l','o',' ','W','o','r','l','d'} range clause: "1 TO …
13 code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

13
斐波那契产品
您可以将大于0的数字分解为正Fibonacci数字的唯一和。在这个问题中,我们通过重复减去最大可能的正斐波那契数来做到这一点。例如: 1 = 1 2 = 2 3 = 3 4 = 3 + 1 12 = 8 + 3 + 1 13 = 13 100 = 89 + 8 + 3 现在,我将斐波那契乘积称为与上面相同的列表,但加法运算被乘积代替。例如,f(100) = 89 * 8 * 3 = 2136。 编写一个给定正整数n的程序或函数,该函数将返回该数字的斐波那契乘积。 测试用例: 1: 1 2: 2 3: 3 4: …
13 code-golf  math  sequence  fibonacci  code-golf  word  code-golf  cipher  code-golf  string  math  subsequence  code-golf  regular-expression  code-golf  brainfuck  assembly  machine-code  x86-family  code-golf  math  factorial  code-golf  math  geometry  code-golf  math  arithmetic  array-manipulation  math  number  optimization  stack  metagolf  code-golf  tips  assembly  code-golf  tips  lisp  code-golf  number-theory  path-finding  code-golf  number  sequence  generation  code-golf  math  geometry  code-golf  grid  permutations  code-golf  code-golf  graphical-output  geometry  fractal  knot-theory  code-golf  math  arithmetic  code-golf  interpreter  balanced-string  stack  brain-flak  code-golf  math  set-theory  code-golf  math  array-manipulation  code-golf  code-golf  string  natural-language  code-golf  code-golf  math  linear-algebra  matrix  code-golf  string  encode 

9
Quinean Regex测试仪
这个挑战非常简单。输入一个正则表达式作为输入。 然后,输出您的源代码是否与正则表达式匹配的真假信息。就这么简单!还有两件事: 没有内置的奎因;但是,您可以通过文件IO等访问代码的源代码。 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 例 如果您的源代码是abc,则输入a\wc会返回true,而输入a\dc会返回false。

1
用您的语言实施PCRE。
注意:自己尝试一下之后,我很快意识到这是一个错误。因此,我将对规则进行一些修改。 所需的最低功能: 字符类(.,\w,\W等) 乘法器(+,*,和?) 简单捕获组 您面临的挑战是在满足以下条件的情况下以您选择的语言实施PCRE: 您不得以任何方式使用语言的本机RegEx工具。您也不能使用第三方RegEx库。 您的输入内容应实现PCRE规范中的大部分内容。尽可能。 您的程序应接受以下两行作为输入: 正则表达式 输入要匹配的字符串 您的程序应在其输出中指出: RegEx是否与输入字符串中的任何位置匹配 任何捕获组的结果 获胜者将是实现尽可能多规范的作品。尽可能。根据我的判断,如果平局,获胜者将是最具创造力的作品。 编辑:澄清一些事情,这是一些输入和预期输出的示例: 输入: ^ \ s *(\ w +)$ 你好 输出: 符合条件:是 第1组:“你好” 输入: (\ w +)@(\ w +)(?:\。com | \ .net) sam@test.net 输出: 符合条件:是 第1组:“ sam” 第二组:“测试”

6
找出有理生成函数的系数
如果我们写一个数字序列作为幂级数的系数,则该幂级数称为该序列的(普通)生成函数(或Gf)。也就是说,如果对于某些函数F(x)和整数系列,a(n)我们有: a(0) + a(1)x + a(2)x^2 + a(3)x^3 + a(4)x^4 + ... = F(x) 然后F(x)是的生成函数a。例如,几何级数告诉我们: 1 + x + x^2 + x^3 + x^4 + ... = 1/(1-x) 因此,的生成函数1, 1, 1, ...为1/(1-x)。如果我们对上面方程的两边求和并乘以x得到以下等式: x + 2x^2 + 3x^3 + 4x^4 + ... = x/(1-x)^2 因此,的生成函数1, 2, 3, ...为x/(1-x)^2。生成函数是一个非常强大的工具,您可以使用它们来做很多有用的事情。在这里可以找到简短的介绍,但是要获得真正彻底的解释,请参见惊人的图书生成功能学。 在此挑战中,您将有理函数(两个具有整数系数的多项式的商)作为两个整数系数数组的输入作为输入,首先是分子,然后是分母。例如,功能f(x) = x …
12 code-golf  math  integer  polynomials  code-golf  math  abstract-algebra  restricted-time  code-golf  math  primes  code-golf  math  number  arithmetic  code-golf  quine  code-golf  number  sequence  code-golf  string  number  code-golf  array-manipulation  code-golf  number  code-golf  string  code-golf  arithmetic  code-golf  string  array-manipulation  rubiks-cube  code-golf  math  number  code-golf  tips  bash  code-golf  ascii-art  music  code-golf  arithmetic  code-golf  math  number  arithmetic  integer  code-golf  number  array-manipulation  code-golf  geometry  grid  set-partitions  code-golf  math  number  code-golf  combinatorics  code-golf  regular-expression  code-golf  permutations  code-golf  ascii-art  code-golf  number  array-manipulation  matrix  code-golf  kolmogorov-complexity  compile-time  cops-and-robbers  polyglot  cops-and-robbers  polyglot  code-golf  string  code-golf  string  ascii-art  matrix  animation  code-golf  ascii-art  code-golf  string  balanced-string  code-golf  integer  integer-partitions  expression-building 

14
用零填充文件
今天的任务是获取一个现有文件,并将零添加到该文件,直到达到一定大小为止。 您必须编写一个程序或函数,该程序或函数采用当前目录中文件的名称f和字节数b。在保留的原始内容的同时f,您必须在末尾写入零(空字节,而不是ascii 0),以便其新大小为b字节。 您可以假设名称中f仅包含字母数字的ascii,您对此具有完全权限,其初始大小不大于b,但可能与一样大b,并且有无限的可用磁盘空间。 您可能不会假设f它是非空的,或者它不已经包含空字节。 执行结束后,不应修改其他现有文件,也不应该存在新文件。 测试用例 f的内容| b | f的结果内容 12345 | 10 | 1234500000 0 | 3 | 000 [空] | 2 | 00 [空] | 0 | [空] 123 | 3 | 123
12 code-golf  file-system  code-golf  code-golf  string  code-golf  string  code-golf  random  game  compression  code-golf  array-manipulation  sorting  code-golf  number  arithmetic  primes  code-golf  geometry  code-golf  code-golf  decision-problem  regular-expression  code-golf  string  math  code-challenge  restricted-source  integer  palindrome  code-golf  string  palindrome  code-challenge  busy-beaver  code-golf  ascii-art  code-golf  string  code-golf  string  permutations  code-golf  code-golf  string  permutations  code-golf  number  primes  function  set-theory  code-challenge  hello-world  code-golf  math  number  decision-problem  code-golf  code-golf  sequence  arithmetic  integer  code-golf  math  number  arithmetic  decision-problem  code-golf  kolmogorov-complexity  alphabet  code-golf  combinatorics  graph-theory  tree-traversal  code-golf  set-theory  code-golf  interpreter  brainfuck  substitution  code-golf  quine  permutations 

3
这个词是女性还是男性?
写一个程序或函数,它在一个字符串只包含小写字母AZ,并打印或返回truthy值,如果这个词是女性的它所代表的事物和版本falsy值,如果它是阳刚的版本。例如,hen是鸡肉的女性版本和rooster男性的版本,因此hen可能会产生1并rooster可能产生0。 对于所有反映性别的英语单词这样做当然太笨拙了。您的程序/功能仅需要支持20对男性/女性对。以下是按主题分类的五组,每组10对男性/女性。选择其中两个集合;这两组中的20对总数是您的程序/功能必须使用的40个单词。 (格式为masculine_version feminine_version) 一般 he she him her man woman boy girl male female masculine feminine guy gal lad lass mister miss sir madam 家族式 father mother dad mom pa ma son daughter brother sister husband wife grandfather grandmother grandpa grandma uncle aunt nephew niece 动物 lion lioness rooster …

2
数论解释器,模n
一个句子数论(我们的目的)的是下列符号序列: 0和'(后继) -后继手段+1,所以0'''' = 0 + 1 + 1 + 1 + 1 = 4 +(加法)和*(乘法) = (等于) (和)(括号) 逻辑运算符nand(a nand b是not (a and b)) forall (通用量词) v0,v1,v2等。(变量) 这是一个句子的示例: forall v1 (forall v2 (forall v3 (not (v1*v1*v1 + v2*v2*v2 = v3*v3*v3)))) 这not x是简写x nand x-实际的句子会用到(v1*v1*v1 + v2*v2*v2 = v3*v3*v3) nand …
12 code-golf  number-theory  parsing  code-golf  kolmogorov-complexity  code-golf  code-golf  array-manipulation  matrix  code-golf  array-manipulation  code-golf  string  code-challenge  graphical-output  compression  code-golf  kolmogorov-complexity  code-golf  sequence  array-manipulation  code-golf  number  base-conversion  code-golf  string  decision-problem  code-golf  string  ascii-art  code-golf  string  random  code-challenge  brainfuck  code-generation  code-golf  code-golf  quine  code-golf  interpreter  code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

1
胶带正则表达式决定器
您的任务是创建一个程序,该程序使用来自StackExchange网络上站点的代码段确定给定的字符串是否为有效的正则表达式。 为了解决这一挑战,将对正则表达式方言进行精简,并尽量减少其元字符集:()*?|\。因此,您将无法使用内置的正则表达式解析器。 \用于转义元字符。它后面必须跟一个元字符。 未转义的括号必须保持平衡 *并且?必须在前面加上非元字符,带括号的组或转义的元字符。 所有其他可打印的ASCII字符以及换行符,制表符和空格都必须支持为非元字符。未定义包含其他字符的字符串会发生什么。 正则表达式的实际含义对于此挑战并不重要。 例子 Truthy: abc a? (a|)* () a|b* \* \\ \\* a*b?(cd|e) + [ } (123\))* \| (a(b(c|d)*e)*f)* (|\)*) (abc)+* (abc)+ +abc ^ last test case is an actual newline Falsy: ?abc * ** \ ( a*? a?* ? a) (\) (|\)* \() |* …

7
构造雅可比矩阵
取未知向量,并应用一些通用的微分函数。的雅可比然后通过矩阵给出,使得: 例如,假设m=3和n=2。然后(使用基于0的索引) 雅可比f然后 这个挑战的目标是打印这个雅可比矩阵。 输入值 你的程序/功能应该采取作为输入两个正整数m和n,其代表的部件的数目f和u分别。输入可以来自任何所需的来源(stdio,功能参数等)。您可以指定接收顺序,对于输入的答案必须一致(请在答案中指定)。 输出量 代表雅可比矩阵的东西。此表示形式必须明确拼出Jacobian矩阵的所有元素,但是每个术语的确切形式都是实现定义的,只要明确区分什么以及关于什么进行区分,并且每个条目均以逻辑顺序输出。用于表示矩阵的示例可接受形式: 列表列表,其中外部列表​​的每个条目都对应于雅可比行的一行,内部列表的每个条目都对应于雅可比行的列。 字符串或文本输出,其中每行是Jacobian行,每行中由定界符分隔的条目对应于jacobian的列。 矩阵的一些图形/视觉表示。示例:使用MatrixForm命令时Mathematica显示的内容 其他每个条目都已存储在内存中并且可以查询的密集矩阵对象(即,您不能使用生成器对象)。例如,Mathematica如何在内部表示Matrix对象 条目格式示例: 形式为的字符串d f_i/d u_j,其中i和j是整数。例如:d f_1/d u_2。请注意,d和f_1或之间的这些空格x_2是可选的。此外,下划线也是可选的。 形式为d f_i(u_1,...,u_n)/d u_j或的字符串d f_i(u)/d u_j。也就是说,功能组件的输入参数f_i是可选的,并且可以明确地拼写出来或以紧凑形式保留。 格式化的图形输出。例如:计算表达式时Mathematica会打印什么D[f_1[u_,u_2,...,u_n],u_1] 您可以选择起始索引u和目标索引f(请在答案中指定)。输出可以是任何所需的接收器(stdio,返回值,输出参数等)。 测试用例 以下测试用例使用约定m,n。索引显示为从0开始。 1,1 [[d f0/d u0]] 2,1 [[d f0/d u0], [d f1/d u0]] 2 2 [[d f0/d u0, d f0/d u1], [d f1/d u0, d …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.