タグ付けされた質問 「regular-expression」

正規表現の使用を含むコードの課題。

3
自己一致正規表現[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 2年前に閉店。 自分自身と一致する重要な正規表現を記述します。 たとえば#.*$、Pythonの文字列外のコメントは行末まで一致し、perlの正規表現構文でも一致します。 ルール: 正規表現は、有用または実用的な何かを行う必要があります。 使用している正規表現構文を教えてください(perlやPOSIXなど)。 勝者は、最高の投票に準拠した回答です。 クリエイティブに!

12
glob Matcherを実装する
一致するパターンと文字列の関数を実装し、パターンがWHOLE文字列に一致する場合はtrueを返し、そうでない場合はfalseを返します。 globパターンの構文は次のとおりです。 ? 任意の1文字と一致します + 1つ以上の文字に一致します * 0個以上の文字に一致します \ 逃げる ルール: 評価なし、正規表現への変換なし、システム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])、クリーネ閉包(*)、アンカー(^および$)、括弧を介して、交互(グループ化|)、任意の用語(?)、一又は、複数の用語(+)、先読み((?=))、負の先読みを((?!))、 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オブジェクト
これを想像してください。1つのオブジェクトのみを含むグローバルスコープを持つ環境がありますcodegolf。このオブジェクトにはと呼ばれる1つの子があり、この子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桁の2進数が続く、すべて大文字の単語OR 1 0。門OR、AND、NOR、NAND、XOR、およびXNOR必要とされています。 出力:入力された論理ゲートの出力には、1または0の2つの数値が与えられます。 例: 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つは、次のように機能する1つのインデックスベースの範囲作成者です。 あなたはと範囲を定義する(INT) TO (INT)か、単に(INT)どこの両方または単一のintは分からに行くことができる最大の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} 課題は次のとおりです。 入力 文字配列および文字列として以前に定義された範囲句 出力 1インデックスの要素は範囲の位置に基づいています(非既存/負のインデックスは空の文字に変換されます) 勝つ方法 コードゴルフの挑戦として、あなたは勝つために最短のバイト数でプログラムを作成することになっています 空の文字は存在しないことが指摘されているため、無視する必要があります(ここでは、わかりやすくするためだけに示しましたが、混乱させています) テストケース: input array is: {'H','e','l','l','o',' ','W','o','r','l','d'} range clause: "1 TO 3" …
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より大きい数を分解できます。この質問では、可能な最大の正のフィボナッチ数を繰り返し減算することでこれを行います。例えば: 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 Tester
この課題は非常に簡単です。入力として、正規表現を使用します。 次に、ソースコードが正規表現と一致するかどうかの真実/偽を出力します。とても簡単です!あと2つだけ: 馬のビルトインはありません。ただし、ファイルIOなどによりコードのソースコードにアクセスできます。 これはcode-golfなので、バイト単位の最短コードが勝ちです! 例 ソースコードがの場合abc、の入力はa\wctrueを返し、の入力はa\dcfalseを返します。

1
自分の言語でPCREを実装します。
注:これを自分で試した後、すぐにこれがどのような間違いであるかを認識しました。そのため、ルールを少し変更しています。 最低限必要な機能: 文字クラス(.、\w、\W、など) 乗算器(+、*、及び?) 単純なキャプチャグループ あなたの課題は、次の条件に従って、選択した言語でPCREを実装することです。 あなたはないかもしれないであなたの言語のネイティブ正規表現機能を使用どのような方法。サードパーティのRegExライブラリも使用できません。 エントリには、PCRE仕様をできるだけ実装する必要があります。できるだけ。 プログラムは、入力として2行を受け入れる必要があります。 正規表現 照合する文字列入力 あなたのプログラムは、その出力で示す必要があります: RegExが入力文字列のどこかに一致したかどうか キャプチャグループの結果 勝者は、仕様の多くを実装するエントリでなければなりません。できるだけ。同点の場合、勝者は私が判断した最も創造的なエントリーとなります。 編集:いくつかのことを明確にするために、入力と予想される出力の例をいくつか示します。 入力: ^ \ s *(\ w +)$ こんにちは 出力: 一致:はい グループ1:「こんにちは」 入力: (\ w +)@(\ w +)(?:\。com | \ .net) sam@test.net 出力: 一致:はい グループ1:「サム」 グループ2:「テスト」

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。関数の生成は非常に強力なツールであり、それらを使用して多くの便利なことができます。簡単な紹介はここにありますが、本当に徹底的な説明のために、素晴らしい本生成機能があります。 この課題では、入力として有理関数(整数係数を持つ2つの多項式の商)を、最初に分子、次に分母の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バイトではなくヌルバイト)を書き込む必要があり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
その言葉は女性的ですか、男性的ですか?
小文字のa〜zのみを含む単一の文字列を取り込んだプログラムまたは関数を作成し、単語が表すものの女性バージョンの場合は真理値、男性バージョンの場合は偽値を出力または返します。例えば、hen鶏のためのフェミニンなバージョンで、rooster男性的なバージョンなので、hen生じる可能性があります1し、rooster生じる可能性があります0。 性別を反映するすべての英語の単語に対してこれを行うことは、もちろんあまりにも扱いにくいでしょう。あなたのプログラム/機能は、20の男性/女性ペアのみをサポートする必要があります。以下は、トピックごとに分類された10組の男性/女性ペアの5セットです。セットのいずれか2つを選択します。これら2つのセットの合計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 bis 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) (\) (|\)* \() |* …

4
放射性元素を見つけるための正規表現
元素の周期表で、すべての放射性元素に一致し、他には一致しない最短の正規表現を見つけます。 放射性元素 'Technetium','Promethium','Polonium','Astatine','Radon','Francium','Radium','Actinium','Thorium','Protactinium','Uranium','Neptunium','Plutonium','Americium','Curium','Berkelium','Californium','Einsteinium','Fermium','Mendelevium','Nobelium','Lawrencium','Rutherfordium','Dubnium','Seaborgium','Bohrium','Hassium','Meitnerium','Darmstadtium','Roentgenium','Copernicium','Ununtrium','Flerovium','Ununpentium','Livermorium','Ununseptium','Ununoctium' 非放射性元素 'Hydrogen','Helium','Lithium','Beryllium','Boron','Carbon','Nitrogen','Oxygen','Fluorine','Neon','Sodium','Magnesium','Aluminium','Silicon','Phosphorus','Sulphur','Chlorine','Argon','Potassium','Calcium','Scandium','Titanium','Vanadium','Chromium','Manganese','Iron','Cobalt','Nickel','Copper','Zinc','Gallium','Germanium','Arsenic','Selenium','Bromine','Krypton','Rubidium','Strontium','Yttrium','Zirconium','Niobium','Molybdenum','Ruthenium','Rhodium','Palladium','Silver','Cadmium','Indium','Tin','Antimony','Tellurium','Iodine','Xenon','Caesium','Barium','Lanthanum','Cerium','Praseodymium','Neodymium','Samarium','Europium','Gadolinium','Terbium','Dysprosium','Holmium','Erbium','Thulium','Ytterbium','Lutetium','Hafnium','Tantalum','Tungsten','Rhenium','Osmium','Iridium','Platinum','Gold','Mercury','Thallium','Lead','Bismuth' 正規表現の文字数でスコア付け。 標準のPerl正規表現を使用します(特別な関数はありません)。 すべて小文字と仮定します。 あなただけの正規表現自体の文字を数える必要があります。 プログラムを使用して開始したかどうか、そしてそれがどれほどうまくいったかを投稿してください。開始/例を表示するための回答として、最善の試みを投稿します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.