正規表現が構文として必要かどうかという話から

適当にツイートを洗い出してまとめた。これから読むところ。
24
前へ 1 2 ・・ 7 次へ
Kazuho Oku @kazuho

@__gfx__ @methane 変数埋め込みができる正規表現リテラルだいぶやめてほしいですねw

2013-12-15 23:26:09
コルン @colun

@methane @__gfx__ 前半に関しては、確かにリテラルとして埋め込みの場合はエスケープしなくて良い(つまり埋め込み変数中に正規表現制御文字が含まれる場合は、リテラルじゃない方法で正規表現使ってね)の方が便利であり、何の言語かは知りませんが一般的にはそっちなのかも?

2013-12-15 23:26:42
methane @methane

@__gfx__ 正規表現リテラルがサーバーサイドで使われる条件なのに、JavaScript の正規表現リテラルならなくてもいい、ということは、JavaScript はサーバーサイドで使われてない? node.js は十分使われてると思うのですが。

2013-12-15 23:30:40
FUJI Goro @__gfx__

ぼくの考える正規表現リテラルが便利な例。 https://t.co/bQbYxWYQ7L

2013-12-15 23:38:32
FUJI Goro @__gfx__

@methane それは議論を混ぜっ返しすぎでは?ぼくはPerlやRubyのような正規表現構文がすばらしいといっているのであって、JSについてはそもそも議論しようとしてません。

2013-12-15 23:39:32
Kazuho Oku @kazuho

@__gfx__ それevalと同様の意味で便利ですね!!! #つまり黒魔術

2013-12-15 23:40:25
FUJI Goro @__gfx__

@kazuho まあDSLを実行時に組み立ててるのでevalではあるんですけど…。

2013-12-15 23:43:48
FUJI Goro @__gfx__

@omasanori 変数埋め込みをしている点も、できればいっしょに見てほしいです。

2013-12-15 23:45:09
methane @methane

@__gfx__ 僕は正規表現リテラルの存在が、サーバーサイド言語として使える条件ではないということを議論していたつもりです。

2013-12-15 23:45:16
Kazuho Oku @kazuho

@__gfx__ はい。なので少なくとも、静的コンパイルを前提とするGoに変数埋め込みを可能なレベルの正規表現を要求するのはバランスが悪いと思います

2013-12-15 23:45:42
tagomoris @tagomoris

Rubyで case when で正規表現リテラル使ってるとちょーーーーーー便利っすよ

2013-12-15 23:46:35
FUJI Goro @__gfx__

@methane 必須かどうかでいえば、事実としては必須ではないですね。

2013-12-15 23:47:21
methane @methane

if re.match("http://", s): elif re.match("https://", s): で case when + 正規表現リテラルの大半のケースはカバーできるけど、 if の中だと match object 取れないので、その場合は1行増える。

2013-12-15 23:49:03
Kazuho Oku @kazuho

数十行にわたる処理の先頭に、処理内容が一行の正規表現で説明してある。そして実際の処理と差異がある #C言語あるある

2013-12-15 23:49:11
FUJI Goro @__gfx__

@kazuho golangは変数展開する文字列リテラルもないのでそれはもともとあまり望んでないです。とはいえJavaとちがってraw string literalがあるのですでに少し使いやすいですね。

2013-12-15 23:51:37
FUJI Goro @__gfx__

@omasanori 可能かどうかでいえば、可能でしょう。しかし変数埋め込みできたほうが便利だと思います。

2013-12-15 23:54:24
Kazuho Oku @kazuho

@__gfx__ @methane 正規表現が便利な例としては、たとえばメールアドレスのチェック等を検討すべきかと思います http://t.co/XkcUKp6h1t

2013-12-15 23:55:19
Masanori Ogino @omasanori

@__gfx__ それは記述が短くなる・理解しやすくなるといったことでしょうか。それともそれがないと機能の実現が困難になるということでしょうか。

2013-12-15 23:56:54
FUJI Goro @__gfx__

@omasanori その二つ、利便性と実現の容易さってそんなにはっきり区別すべきものですか?

2013-12-15 23:58:17
FUJI Goro @__gfx__

Javaで正規表現使おうとしたときはだいぶつらかったので、あきらめて文字列操作メソッドで処理しました。

2013-12-16 00:00:20
FUJI Goro @__gfx__

Android appのフォームのバリデーションだったかな。

2013-12-16 00:00:48
methane @methane

@kazuho @__gfx__ そうですね。そういった一部のライブラリ内では正規表現を使います。問題は、リテラルがあるべきかどうか、アプリケーションの至る所に正規表現を使った処理が散らばってるのがいいかどうかだと思います。

2013-12-16 00:05:14
methane @methane

多分 m{ から } までが正規表現で xg がフラグなんだけどこういった記号や構文はマジでググラビリティ最悪。

2013-12-16 00:05:56
前へ 1 2 ・・ 7 次へ