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

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

10
///を解釈する(「スラッシュ」と発音)
難解な言語のゴルフを十分に得ることができないので、できますか? /// —発音のスラッシュ ——Perlのs///名声の正規表現置換機能に基づいた楽しい小さな言語です。スラッシュ/とバックスラッシュの2つの特殊文字のみが含まれています\。esolangs wikiで完全な記事を見つけることができますが、以下の言語の説明といくつかの例を再現します。 つまり、/pattern/repl/restプログラムで識別し、可能な限り何度も置換を行うことで機能します。いいえ文字は除いて特別ではない/と\:/画定パターンや交換プログラムで、しばらくは\リテラルを挿入することを可能にする/か、\あなたのコードに文字を。特に、これらは正規表現ではなく、単なる文字列の置換です。 あなたの課題は、できるだけ少ない文字で、STDINを読み取るプログラムまたは文字列引数を取る関数として、///言語のインタープリターを作成することです。 ///自体以外の任意の言語を使用できます。///;を解釈するライブラリは使用できません。ただし、正規表現、正規表現ライブラリ、または文字列一致ライブラリを使用できます。 実行 4つの状態、print、pattern、replacement、およびsubstitutionがあります。置換を除くすべての状態で: プログラムが空の場合、実行は停止します。 それ以外の場合、最初の文字がの場合、\次の文字(存在する場合)で何かを実行し、プログラムから両方を削除します。 それ以外の場合、最初の文字がの場合、/それを削除し、次の状態に変更します。 それ以外の場合は、最初の文字で何かをして、プログラムから削除します。 繰り返す。 状態は、print、pattern、replacement、およびsubstitutionを順に循環します。 では、印刷モード、文字手段の出力「何かを行います」。 では、パターンモードで、「何かをする」という意味は、現在のパターンに文字を追加します。 で代替モードで、「何かをする」という意味では、現在の交換に文字を追加します。 で置換モードでは、ルールの異なるセットに従ってください。置換が不可能になるまで、現在のパターンの最初の出現をプログラムの現在の置換で繰り返し置換します。その時点で、パターンと置換をクリアし、印刷モードに戻ります。 プログラム/foo/foobar/foo foo fooでは、次のことが起こります。 /foo/foobar/foo foo foo foo foo foo foobar foo foo foobarbar foo foo foobarbarbar foo foo ... これは永久にループし、置換モードを終了しません。同様に、パターンが空の場合、プログラムの先頭にある最初の空の文字列は常に一致するため、置換モードは永久にループし、停止することはありません。 例 no 出力:no。 / world! world!/Hello,/ world! world! world! 出力:Hello, …

28
超対数を計算する
これは簡単な課題です。 数を考えるとn >= 0、出力超対数(またはログ*、ログスターを、または対数を繰り返し、同等であるため、nこのような課題に対して負になることはありません。)のn。 これは、テトラションに対する2つの逆関数の1つです。もう1つはスーパールートです。これは関連する質問です。 例 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ます。そして時々私がタイプするとき6それは表示する+。いくつかのボタンが混同されています! 誰が私がどちらを決定するのを手伝ってもらえますか? チャレンジ: 入力:間違った方程式のリスト、正しい結果。 出力:交換される2つのボタン。 例: 入力は次のとおりです。 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。方程式のリストと正しい結果の別のリスト。あなたの電話。使用した入力形式を明記してください! 注:これは-5--15、-5- -15またはとしてテストケースを入力できることも意味します-5 …
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
長さが4乗の文字列に一致
この質問の範囲内で、文字xを任意の回数繰り返した文字列のみを考えてみましょう。 例えば: <empty> x xx xxxxxxxxxxxxxxxx (まあ、実際にはそうである必要はありませんx-文字列全体が1種類の文字を持っている限り、どんな文字でも構いません) 任意の正規表現フレーバーで正規表現を記述して、非負整数n(n> = 0)の長さがn 4であるすべての文字列に一致させます。たとえば、長さ0、1、16、81などの文字列は有効です。残りは無効です。 技術的な制限により、128より大きいnの値をテストするのは困難です。ただし、正規表現は論理的には正しく動作するはずです。 (Perlユーザーに対して)正規表現で任意のコードを実行することは許可されていないことに注意してください。その他の構文(ルックアラウンド、後方参照など)は許可されます。 問題へのアプローチについての簡単な説明も含めてください。 (自動生成された正規表現構文の説明は役に立たないので貼り付けないでください)

3
3番目の整数が最初の2つの合計である場合、3つの連続した整数に一致する正規表現
最後の整数が前の2つの合計である場合にのみ、3つの非負のスペース区切り整数で構成される特定の文字列に一致する正規表現を記述します。答えは、基数が2〜10の任意の数字システムの整数に対するものです。 テストケース これらは失敗するはずです: 0 1 2 10 20 1000 これらは一致する必要があります。 10 20 30 28657 46368 75025 0 0 0 ルール 答えは、追加のコードを含まない単一の正規表現で構成する必要があります(オプションで、ソリューションを機能させるために必要な正規表現修飾子のリストを除く)。ホスティング言語でコードを呼び出すことができる言語の正規表現フレーバーの機能(Perlのe修飾子など)を使用しないでください。 答えに正規表現のフレーバーを指定してください。 これは正規表現のゴルフであるため、バイト単位の最短正規表現が優先されます。言語に正規表現を示すために区切り文字(通常は/.../)が必要な場合は、区切り文字自体をカウントしないでください。ソリューションで修飾子が必要な場合は、修飾子ごとに1バイトを追加します。 クレジットマーティンエンダーと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
正規表現パターンの半順序付け
この課題のために、部分文字列だけでなく文字列全体がパターンと一致する場合、正規表現パターンは文字列と一致すると言います。 与えられた2つの正規表現のパターン A と Bは、我々はと言う Aが され、より専門よりも B で一致したすべての文字列ならば Aは またで一致している B の周りに他の方法ではありません。私たちは、と言う Aが あると同等に B の両方のパターンが正確に文字列の同じセットと一致している場合。パターンが他のパターンよりも特殊化されておらず、同等でもない場合、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)。 A …

3
簡易カーニングを実装する
前書き カーニングとは、テキストの文字間の間隔を調整することを意味します。例として、Top次の3つのグリフで書かれた単語を考えます。 ##### ..... ..... ..#.. ..... ..... ..#.. ..##. .###. ..#.. .#..# .#..# ..#.. .#..# .#..# ..#.. ..##. .###. ..... ..... .#... ..... ..... .#... グリフ間のギャップをドットで埋めて完了させることもできますが、ギャップはどうやら広すぎるように見えます。代わりに、グリフを左にスライドさせて、ほとんど触れないようにします。 #####........ ..#.......... ..#..##..###. ..#.#..#.#..# ..#.#..#.#..# ..#..##..###. .........#... .........#... これはずっと良く見える!のバーがTの左の境界線の上にあることに注意してくださいo。この課題では、このような長方形のグリフに簡単なカーニングプログラムを実装することがタスクです。 カーニングプロセス 二長方形の2次元文字配列考える.と#同じ形状を。単純なカーニングプロセスでは、最初に1列の.sを挟んで配列を並べて配置します。次に、#右と左の配列のいくつか#が直交または斜めに隣接するまで、右の配列のそれぞれを左に1ステップ移動します。カーニングの結果は、隣接するを導入する前のステップ#です。あなたの仕事は、このプロセスを実装することです。 例を見てみましょう: 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コミックに触発されたメタ正規表現ゴルフの問題は既にあります しかし、この正規表現ゴルフも楽しそうです!アメリカの州とイタリアの地域を区別したいと思います。どうして?私は両国の市民であり、常にこれに問題があります*。 イタリアの地域は 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 starです(左のグループまたはリテラルを0回以上繰り返します)。 | 代替です(左側の正規表現または右側の正規表現のいずれかが一致する場合に一致します)。 () グループ化しています。 1 文字1に一致します。 0 文字0に一致します。 …

11
クロスマッチング正規表現
ここでのタスクは、2つの正規表現を作成することです。各正規表現は、他の正規表現と一致しますが、それ自体とは一致しません。 両方の正規表現には、次の形式が必要です。 /pattern/optional-flags これは、それらが一致する形式でもあります。 最短のソリューションが勝ちます。ソリューションの長さは、スラッシュとフラグを含む両方の正規表現の文字の合計としてカウントされます。 違いがある場合は、選択した正規表現構文標準を使用するか、プログラミング言語を指定します。 楽しむ!

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そのような行列を、警官のポストと同じ言語で、警官の正規表現に一致するコードで作成することです。コードの出力形式は、警官のコードの出力形式と一致する必要があります。 Copの投稿の下にコメントを残して、クラックしたことを示してください。 受賞基準: 勝者は、ほとんどの提出をクラックしたユーザーになります。同点の場合、複数の勝者が存在します。

5
バイナリワードに一致する最短の単純な正規表現
仕事 単純な正規表現を、次のみで構成される空でない正規表現として定義します 文字0と1、 括弧をグループ化(して)、 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+ or …

27
*の通訳を書く
タスクは簡単です。言語*のインタープリターを作成します。 wikiへのより大きなリンクがあります。 有効なプログラムは3つだけです: * 「Hello World」を印刷します * 0〜2,147,483,647の乱数を出力します *+* 永遠に実行します。 3番目のケースは、この質問の仕様に従った無限ループでなければなりません 入力: 入力は、標準のI / Oルールで受け入れ可能な任意の入力方法で取得できます。 上記のプログラムのいずれかになります 出力: 最初のケースではHello World、末尾の改行の有無にかかわらず、正確に印刷する必要があります。 2番目の場合、言語の整数の最大値が2,147,483,647より小さい場合は、言語の整数の最大値を使用します 最初と2番目のケースは、標準のI / Oルールで受け入れ可能な出力に出力できます。 3番目のケースでは、出力は行われません。 得点: これはcode-golfであるため、バイト単位の最短回答が勝ちです。
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 

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