goo blog サービス終了のお知らせ 

日々のDraft

回答原案集

教えてgoo Q5419594

2009-11-03 21:49:01 | 教えてgoo - 俺の、正規表現に対する憎悪
http://oshiete1.goo.ne.jp/qa5419594.html

えーっと。毎回言うけど、正規表現を使う必要がどこにある?

============
Q.じゃあ、himajin100000だったら、どういうコード書いて欲しいの?
A.
例えば…JavaのInteger.parseInt(String)は
U+FF11とかも文字列として受け入れるよね?

U+0030 - U+0039まででやりたい場合はどうするか?
String str = "5";
str.Equals(String.format("%d",Integer.parseInt(str)))
こうすれば正規表現不要だよね?
Integer.parseIntに成功してもEqualsで落ちる。含まれている文字列をチェックする必要なんて無い。

#なんで、Javaを持ち出したかと言うとECMAScriptのtoStringメソッドの引数でで書式指定できるかわからなかったから。
# C#は元から上記の範囲の文字で構成された文字列でちゃんと例外が発生するので…

教えてgoo Q5328207

2009-10-03 07:43:08 | 教えてgoo - 俺の、正規表現に対する憎悪
http://oshiete1.goo.ne.jp/qa5328207.html

>#3

もちろん駄目。

#クラス名として不適切なものが入力された場合どうするんだろうね?NameCharで始まらない,とか。HTML5のgetElementsByClassNameメソッド記述では特に"NameCharで始まる"とか何とか話がまったくありそうに見えないんだけど(class属性の記述だとany valueって書いてある。クラス名にスペースを含められない,とかそういう記述もなしかな?。


#上記の懸念を解決した上での,駄目でない例外:ユーザーが,引数cに与えるのが正規表現であることを認識している