2

正規表現は読みにくいです。読みにくい理由の 1 つは、非常に小さな文字リスト (ASCII) でエンコードされていることです。

正規表現の新しい表記法が Unicode のより広い範囲の文字を使用して作成されないのはなぜですか?

バックスラッシュの疫病は、バックスラッシュがオーバーロードされているという事実から生じます。これは、「バックスラッシュ」と「次の文字がそれ自体ではない」ことを同時に意味します。

しかし、これは一種のナッツですよね?バックスラッシュはバックスラッシュである必要があり、「次の文字はそれ自体ではありません」は、テキストに表示される可能性が低いものにする必要があります。

これに対する明白な反応は、「しかし、あなたが選んだものは何でもテキストにも表示されるかもしれません!」です。ええ、それは本当です。しかし、バックスラッシュに一致させたいと思う確率は (私たちが自分自身を見つけた歴史を考えると)、Unicode の他のあいまいな記号よりも天文学的に高いです。

または括弧を取ってください: 他の文字を使用できるのに、なぜ [\[\]] と書かなければならないのでしょうか?

《[]》

私を狂ったと呼んでも

>>> re.compile('《[]》')

私には、次よりもはるかに読みやすいように見えます。

>>> re.compile('[\[\]]')

改行のような特定の文字さえあります:

ひどく読みやすいかどうかはわかりませんが、その考えは正しいですか? 多分それはあるべきです

または

これらの特定のキャラクターの選択のいずれかが「正しい」と示唆しようとしているわけではありません。私が知る限り、このトピックについての議論がないように見えることにただ驚いています.

小さなアルファベットで正規表現を書こうとすることの耐え難い結果を、人々はなぜ喜んで我慢するのでしょうか?

アップデート

うわー、この質問が引き起こした嘲笑に驚いています。大したことは何ですか?

以下の私の無茶苦茶なコメントはいくつかのコメントに関連していたので、ここに書きます。

当然のことながら、「私たちはそのための鍵を持っていない」という議論は私にはあまり意味がありません. ここで話している「特殊文字」の数はいくつですか? 絶対最大値を 100 としましょう (これはクレイジーです。現実的には、おそらく 20 に近いでしょう)。

私が話しているのは入力方法ではありません。結局のところ、ラテン アルファベット以外の書記体系でコンピューターを使用したい人に対して、「申し訳ありませんが、これらのキーはキーボードにありません」とは言いません。もちろん違います。

テキストを構成する文字セットをハードウェアに依存して決定するというのは、単純にそうではありません。あの日々は過ぎ去りました。すべてのプログラミング言語は、あらゆる場所で多かれ少なかれ Unicode をサポートしているか、それに取り組んでいます。遅かれ早かれ普遍的になるでしょう。

しかし、ここでの態度がテクノロジー業界のほとんどを代表するものであるとすれば、私たちは皆、2050 年代への脱出を楽しんでいると思います。

素晴らしい。

4

5 に答える 5

10

キーボードにそれらの文字のキーはありますか?

于 2012-06-29T21:00:10.137 に答える
1

改行ではなく単なる文字である改行を使用したい場合はどうすればよいですか?

"/\↳/" ?

しかし、正規表現のある種の構文シュガーの実装を作成することを止めるものは何もありません。それが機能する場合、あなたは正しかったです。

于 2012-06-29T21:24:02.670 に答える
1

入力するのがさらに難しいからです。

于 2012-06-29T21:00:26.297 に答える
0

ほとんどの人は Unicode キーボードを持っていないからです。

正直なところ、正規表現を作成するたびにcharmapを起動することを期待していますか?

于 2012-06-29T21:00:46.947 に答える
0

正規表現を入力するのがはるかに難しくなると誰もが言っていることに同意します。また、文字を検索する必要があるのが遅くなると思いますが、多くのプログラミング言語で文字をエスケープするために一般的に使用されているバックスラッシュを使用する方が簡単です。

読みやすさが主な関心事である場合は、正規表現の上にコメントを付けて対処する必要があります。

于 2012-06-29T21:08:36.640 に答える