Questions tagged «regular-expression»

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

10
解释///(发音为“斜杠”)
因为我们无法获得足够多的深奥语言高尔夫,我们可以吗? /// —发音 斜杠)是一种有趣的小语言,它基于s///Perl成名的正则表达式替换功能。它仅包含两个特殊字符slash /和反斜杠\。您可以在esolangs Wiki上找到完整的文章,但我将在下面复制对语言的描述以及一些示例。 简而言之,它通过/pattern/repl/rest在程序中进行标识并进行尽可能多的替换来起作用。除特殊字符外,没有其他特殊字符/和,\::/划定程序中的模式和替换,同时\允许您在代码中插入文字/或\字符。值得注意的是,这些不是正则表达式,只是纯字符串替换。 您面临的挑战是为///语言生成解释器,作为一个读取STDIN的程序或一个带有字符串参数的函数,并使用尽可能少的字符。 您可以使用///以外的任何语言。您不得使用任何解释///的库;但是,您可以使用正则表达式,正则表达式库或字符串匹配库。 执行 有四种状态,分别是print,pattern,replace和replace。在每个国家中,除了替代: 如果程序为空,则暂停执行。 否则,如果第一个字符为\,则对下一个字符(如果存在)进行操作,然后从程序中删除这两个字符。 否则,如果第一个字符是 /,请将其删除,然后更改为下一个状态。 否则,对第一个字符进行处理,然后将其从程序中删除。 重复。 状态依次遍历print,pattern,replace和替换。 在打印模式下,“执行某些操作”表示输出字符。 在模式模式下,“执行某些操作”意味着将字符添加到当前模式。 在替换模式下,“执行某些操作”意味着将字符添加到当前替换中。 在替换模式下,您遵循一组不同的规则。重复用程序中的当前替换替换当前模式的第一个匹配项,直到不再有替换可用为止。此时,清除“模式和替换”并返回打印模式。 在程序中/foo/foobar/foo foo foo,发生以下情况: /foo/foobar/foo foo foo foo foo foo foobar foo foo foobarbar foo foo foobarbarbar foo foo ... 这将永远循环,并且永远不会退出替换模式。同样,如果Pattern为空,则空字符串的第一个匹配项(在程序开头)总是匹配的,因此替换模式永远循环,永不停止。 例子 no 输出:no。 / world! world!/Hello,/ world! world! …

28
计算超级对数
这应该是一个简单的挑战。 给定一个数字n >= 0,输出的超级对数(或log *,log-star或迭代对数,它们是等效的,因为n对于该挑战永远不会为负。)n。 这是四官能的两个反函数之一。另一个是超级根,这是一个相关的问题。 例子 Input Output 0 0 1 0 2 1 3 2 4 2 ... 15 2 16 3 ... 3814279 3 3814280 4 规则 您可能不需要支持小数。 您需要至少支持输入3814280 = ceiling(e^e^e)。 您可能不对值进行硬编码3814280。(理论上,您的程序必须支持更高的数字。)我希望实现一种算法。 最短的代码胜出。 相关OEIS
29 code-golf  math  code-golf  array-manipulation  sorting  code-golf  math  arithmetic  matrix  code-golf  string  kolmogorov-complexity  code-golf  string  code-golf  math  sequence  arithmetic  recursion  code-golf  math  ascii-art  sequence  code-golf  math  array-manipulation  code-golf  code-golf  kolmogorov-complexity  code-golf  string  code-golf  string  decision-problem  code-golf  array-manipulation  tips  javascript  json  code-golf  math  string  number  number-theory  code-golf  math  sequence  fibonacci  number  arithmetic  fastest-code  integer  code-golf  math  sequence  code-golf  string  file-system  tips  golfscript  code-golf  string  code-golf  string  natural-language  code-golf  string  file-system  code-golf  math  array-manipulation  code-challenge  image-processing  compression  code-golf  math  number  sequence  code-golf  math  combinatorics  regular-expression  code-golf  sequence  pi  code-golf  ascii-art  code-golf  string  array-manipulation  sorting  code-golf  string  graph-theory  code-golf  string  code-golf  string  ascii-art  code-challenge  compression  code-golf  code-golf  math  sequence  number-theory  code-golf  maze  graph-theory  code-golf  math  sequence 

4
元正则表达式高尔夫
本着xkcd的精神 编写一个程序,使用任意对列表进行正则表达式高尔夫。该程序至少应尝试使正则表达式变短,/^(item1|item2|item3|item4)$/不允许仅输出或类似程序。 评分基于生成最短正则表达式的能力。测试清单是在这里找到成功和失败的美国总统候选人的清单(感谢@Peter)。当然,该程序必须适用于所有不连续的列表,因此仅返回总裁的答案就不算在内。

6
救命!我的计算器出现故障!
介绍 我的计算器很奇怪。有时,当我输入时8会显示2。有时,当我输入a 6时会显示+。一些按钮混在一起! 谁能帮我确定哪个? 挑战: 输入:错误方程式列表,结果正确。 输出:交换的两个按钮。 例如: 输入可以是: 123 = 3 8423 = 252 4+4 = 8 4*7-10 = 417 9/3 = 3 42-9 = -36 其预期的输出是:2和*。 为什么?因为如果我们交换2和*,则所有等式都是正确的: 1*3 = 3 84*3 = 252 4+4 = 8 427-10 = 417 9/3 = 3 4*-9 = -36 挑战规则: 输入可以采用任何合理的格式。可以是一个以空格分隔的字符串;字符串列表或-array; 一个包含方程式的列表和另一个包含正确结果的列表。你的来电。请说明您使用的输入格式! …
28 code-golf  number  arithmetic  integer  code-golf  math  number  geometry  code-golf  grid  code-golf  math  number  sequence  primes  code-golf  sequence  kolmogorov-complexity  code-golf  string  ascii-art  alphabet  code-golf  math  sequence  integer  code-golf  number-theory  integer  natural-language  code-golf  date  code-golf  function  code-golf  ascii-art  code-golf  math  number-theory  primes  classification  code-golf  array-manipulation  decision-problem  matrix  code-golf  number  code-golf  code-golf  ascii-art  matrix  code-golf  string  code-golf  sequence  base-conversion  code-golf  code-golf  math  number-theory  combinatorics  integer-partitions  code-golf  integer  binary  base-conversion  code-golf  integer  base-conversion  palindrome  code-golf  code-golf  integer-partitions  code-golf  math  ascii-art  matrix  code-golf  number  sequence  number-theory  matrix  code-golf  interpreter  code-golf  graph-theory  code-golf  ascii-art  decision-problem  code-golf  division  code-golf  array-manipulation  primes  code-golf  string  ascii-art  code-golf  primes  counting  code-golf  matrix  unicode  code-golf  source-layout  code-golf  grammars  code-golf  string  cops-and-robbers  regular-expression  obfuscation  string  code-challenge  cops-and-robbers  regular-expression  code-golf  kolmogorov-complexity  game  card-games  code-golf  kolmogorov-complexity  code-golf  array-manipulation  matrix  code-challenge  cops-and-robbers  code-challenge  decision-problem  cops-and-robbers  code-golf  permutations 

4
匹配长度为四次幂的字符串
在这个问题的范围内,让我们只考虑由x任意次数重复的字符组成的字符串。 例如: <empty> x xx xxxxxxxxxxxxxxxx (嗯,实际上不必如此x-只要整个字符串只有一种类型的字符,任何字符都可以) 以您选择的任何正则表达式形式编写一个正则表达式,以匹配某个非负整数n(n> = 0)长度为n 4的所有字符串。例如,长度为0、1、16、81等的字符串有效;其余的无效。 由于技术限制,难以测试大于128的n值。但是,无论如何,您的正则表达式在逻辑上均应正常工作。 请注意,不允许您在正则表达式中(对Perl用户)执行任意代码。允许使用任何其他语法(环顾四周,向后引用等)。 还请提供有关您解决问题方法的简短说明。 (请不要粘贴自动生成的正则表达式语法说明,因为它们没有用)

3
一个正则表达式,用于匹配三个连续整数,前提是第三个整数是前两个整数的和
当且仅当最后一个整数是前两个整数的和时,编写一个正则表达式,该表达式与给定的字符串匹配,该字符串由三个非负号,空格分隔的整数组成。答案可能是小数在2到10之间的任何数字系统的整数。 测试用例 这些应该失败: 0 1 2 10 20 1000 这些应该匹配: 10 20 30 28657 46368 75025 0 0 0 规则 您的答案应该由一个正则表达式组成,没有任何其他代码(可选地,使您的解决方案起作用所需的正则表达式修饰符列表除外)。您不得使用语言的正则表达式风格的功能来允许您以托管语言调用代码(例如Perl的e修饰符)。 请在回答中指定您的正则表达式风格。 这是正则表达式高尔夫,因此以字节为单位的最短正则表达式获胜。如果您的语言需要使用分隔符(通常是/.../)来表示正则表达式,请不要计算分隔符本身。如果您的解决方案需要修饰符,请为每个修饰符添加一个字节。 学分马丁·安德和jaytea的正则表达式,高尔夫规则。 我有理由相信基于Martin Ender的解决方案可以使用regex查找和递增整数。

4
逆转正则表达式
挑战 给定有效的正则表达式,输出匹配相同字符串集但反向的正则表达式。 任务 这个挑战使用最基本的正则表达式操作:^,$,?,+,*,[],{},|。没有捕获组或任何复杂的东西。特殊字符可以转义。 样本输入/输出 注意:永远不会给出无效的输入,对于给定的输入,通常会有多个可能的答案! Input | Sample Output -----------|------------- abc | cba tuv? | v?ut a(b|c) | (c|b)a 1[23] | [23]1 a([bc]|cd) | (dc|[bc])a ^a[^bc]d$ | ^d[^bc]a$ x[yz]{1,2} | [yz]{1,2}x p{2} | p{2} q{7,} | q{7,} \[c[de] | [de]c\[ ab[c | <output undefined> a(?bc) | <output undefined> a[]]bc …

2
正则表达式模式的部分排序
出于这个挑战的目的,我们说如果整个字符串(而不只是子字符串)都与该模式匹配,字符串匹配。 给定两个正则表达式模式 一 和 乙,我们说 一个 是更专业比 乙 ,如果每一个被匹配的字符串 一个 也是由匹配 乙 左右,但没有别的办法。我们说, 一个 是等同于 乙 如果两个模式匹配完全相同的一组字符串。如果两个模式都不比另一个更专业,或者它们都不等效,那么我们就说 A 和 B 是无可比拟的。 例如,模式Hello, .*!比.*, .*!; 更专业。模式(Hello|Goodbye), World!和Hello, World!|Goodbye, World!是等效的;以及模式Hello, .*!和.*, World!是无与伦比的。 关系“比……更专业”定义了一组正则表达式模式的严格偏序。特别是,对于所有模式 A 和 B,下列条件之一完全成立: A 比B更专业 (A < B)。 B 比A更专业 (A > B)。 A 和 B 是等效的(A = B)。 …

3
实施简化字距调整
介绍 字距调整是指调整文本字母之间的间距。例如,考虑Top用以下三个字形写的单词: ##### ..... ..... ..#.. ..... ..... ..#.. ..##. .###. ..#.. .#..# .#..# ..#.. .#..# .#..# ..#.. ..##. .###. ..... ..... .#... ..... ..... .#... 我们可以用点填充字形之间的间隙并完成它,但是间隙看起来太宽了。相反,我们将字形滑动到左侧,以便它们几乎可以接触: #####........ ..#.......... ..#..##..###. ..#.#..#.#..# ..#.#..#.#..# ..#..##..###. .........#... .........#... 看起来好多了!请注意,的条形图T在的左边框上方o。在此挑战中,您的任务是为此类矩形字形实现一个简单的字距调整程序。 字距调整过程 考虑具有.和#形状相同的两个矩形2D字符数组。在简单的字距调整过程中,我们首先将数组并排放置,中间放置一列.s。然后,我们将#右阵列中的每一个向左移动一步,直到#左右阵列中的s正交或对角相邻。字距调整的结果是引入相邻s 之前的步骤#。您的任务是实施此过程。 让我们举个例子: Inputs: ..### #.... #.... ..##. ...#. ...## ..### ....# Process: …
24 code-golf  grid  code-challenge  atomic-code-golf  code-golf  combinatorics  probability-theory  card-games  code-golf  number  geometry  code-golf  decision-problem  chess  code-golf  math  number  sequence  code-golf  string  regular-expression  code-golf  arithmetic  integer  code-golf  math  array-manipulation  code-golf  number  decision-problem  integer  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  decision-problem  graph-theory  binary-matrix  code-golf  string  parsing  code-golf  string  code-golf  morse  code-golf  code-golf  string  code-golf  ascii-art  cellular-automata  code-golf  binary  base-conversion  code-golf  arithmetic  decision-problem  integer  checksum  code-golf  matrix  linear-algebra  code-golf  code-golf  game  code-golf  sequence  binary  code-golf  combinatorics  optimization  code-golf  decision-problem  quine  code-golf  rational-numbers  bitwise  code-golf  string  permutations  code-golf  kolmogorov-complexity  unicode  code-golf  ascii-art  number  code-golf  number  integer  binary  base-conversion  code-golf  array-manipulation  code-golf  chemistry  code-golf  number  sequence  fibonacci  code-golf  matrix  optimization  code-golf  number  code-golf  math  number  sequence  code-golf  math  array-manipulation  matrix  linear-algebra  code-golf  kolmogorov-complexity  cops-and-robbers  cops-and-robbers  code-golf  tips  basic  code-golf  decision-problem  binary  tiling  game  king-of-the-hill  python  code-golf  c  code-golf  ascii-art  code-golf  string  kolmogorov-complexity  alphabet  code-golf  number  code-golf  string  code-golf  number  sequence  integer  code-golf  number  permutations  restricted-complexity  restricted-time 

5
正则表达式高尔夫:意大利对美国的地区
受xkcd漫画启发,我们已经遇到了meta-regex-golf问题 但是,这个正则表达式高尔夫看起来也很有趣!我想区分美国各州和意大利各地区。为什么?我是这两个国家的公民,我总是有这样的烦恼*。 意大利的地区是 Abruzzo, Valle d'Aosta, Puglia, Basilicata, Calabria, Campania, Emilia-Romagna, Friuli-Venezia Giulia, Lazio, Liguria, Lombardia, Marche, Molise, Piemonte, Sardegna, Sicilia, Trentino-Alto Adige/Südtirol, Toscana, Umbria, Veneto 美国的州是 Alabama, Alaska, Arizona, Arkansas, California, Colorado, Connecticut, Delaware, Florida, Georgia, Hawaii, Idaho, Illinois, Indiana, Iowa, Kansas, Kentucky, Louisiana, Maine, Maryland, Massachusetts, Michigan, Minnesota, …

2
编译正则表达式(通过替换)
您的任务是通过为正则表达式中的每个字符指定替换来编译正则表达式。 正则表达式 正则表达式支持这些 REGEX = (LITERAL REGEX / GROUP REGEX / STAR REGEX / ALTERNATIVE) LITERAL = 1 / 0 GROUP = '(' REGEX ')' STAR = (LITERAL / GROUP) '*' ALTERNATIVE = '('REGEX ('|' REGEX)*')' 为什么只有1或0?这是为了简化。因此,正则表达式仅具有以下字符: *()|10 其解释如下: * 是Kleene星号(重复左组或字面量0次或多次)。 | 是交替(如果左侧的正则表达式或右侧的正则表达式匹配,则匹配)。 () 正在分组。 1 匹配字符1。 0 匹配字符0。 怎么编译? …

11
交叉匹配的正则表达式
您的任务是编写两个正则表达式,每个正则表达式都与另一个正则表达式匹配,但自身不匹配。 两个正则表达式都应具有以下形式: /pattern/optional-flags 这也是它们应该匹配的形式。 最短的解决方案获胜。解决方案长度计算为两个正则表达式(包括斜杠和标志)中字符的总和。 可以使用您选择的regex语法标准,或者指定编程语言(如果有区别)。 玩得开心!

30
强盗:破解正则表达式-做蛇
这是强盗的线索。在警察的线程是在这里。 蛇形矩阵是遵循此模式的正方形矩阵: 3乘3: 1 2 3 6 5 4 7 8 9 和4比4: 1 2 3 4 8 7 6 5 9 10 11 12 16 15 14 13 您的任务是编写一个代码,该代码将使用输入n并创建这样的矩阵,并使用与警察职位相同的语言,并使用与警察的正则表达式匹配的代码。您代码的输出格式必须与警察代码的输出格式匹配。 请在警察的帖子下发表评论,表明您已破解它。 获奖标准: 获胜者将是提交量最多的用户。如果是平局,那么将有多个获胜者。

5
最短的简单正则表达式匹配二进制单词
任务 将简单的正则表达式定义为仅包含以下内容的非空正则表达式 字符0和1, 分组括号(和), 一个或多个重复量词+。 给定0s和1s 的非空字符串,您的程序应找到与完整输入字符串匹配的最短简单正则表达式。(也就是说,当匹配一个简单的正则表达式时,假装它由^ 和 预定$。)如果有多个最短的正则表达式,请打印其中的一个或全部。 code-golf,所以最短的提交(以字节为单位)获胜。 测试用例 1 -> 1 00 -> 00 or 0+ 010 -> 010 1110 -> 1+0 01010 -> 01010 0101010 -> 0(10)+ or (01)+0 011111 -> 01+ 10110110 -> (1+0)+ 01100110 -> (0110)+ or (01+0)+ 010010010 -> (010)+ 111100111 -> 1+001+ …

27
为*写翻译
任务很简单。为*语言编写口译员。 这是Wiki的更大链接。 只有三个有效的*程序: * 打印“ Hello World” * 打印0到2,147,483,647之间的随机数 *+* 永远运行。 根据此问题的规范,第三种情况必须是无限循环 输入: 可以通过我们的标准I / O规则通过任何可接受的输入方法进行输入 它将永远是以上程序之一 输出: 第一种情况应打印准确Hello World,带有或不带有尾行。 对于第二种情况,如果您的语言的整数最大值小于2,147,483,647,请使用您的语言的整数最大值 根据我们的标准I / O规则,第一种情况和第二种情况可以打印到任何可接受的输出。 第三种情况不应给出任何输出。 得分: 因为这是代码高尔夫球,所以最短的答案(以字节为单位)获胜。
20 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 

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.