- 1 名前:デフォルトの名無しさん [2017/03/15(水) 02:04:35.47 ID:e01p03UP.net]
- Regular Expressionスレです。
質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。 前スレ Regular Expression(正規表現) Part13 echo.2ch.net/test/read.cgi/tech/1415149975/ 次スレは>>980宜しく 天ぷら等2以降
- 76 名前:56 mailto:sage [2017/04/23(日) 22:57:55.33 ID:/2AcrhSu.net]
- >>72
質問に忠実な正規表現ありがとうございました >>73 きゃー素敵!と冗談はさておき まさに望んでいたものでした、本当にどうもありがとうございました!
- 77 名前:デフォルトの名無しさん mailto:sage [2017/04/28(金) 19:19:48.10 ID:VBxbz7un.net]
- 正規表現を勉強し始めた者です
>>73の正規表現について2つ質問させて下さい 展開すると以下のようになりますよね ^[^+]*$ 「+」が無い行に一致。残りは「+」が在る行 ( 「+」に数字が続く場合の0〜3桁とその先頭に0が続くパターン ※Q1 \+ \+0*[0-9] \+0*[1-9][0-9] [1-9]なのは0*0[0-9]は0*[0-9]に含まれているから \+[1-9][0-9][0-9] 3桁目で0*とすると0900にマッチしてしまう 4桁で「0900以外」のパターン ※Q2 \+0[1-7][0-9][0-9] \+08[0-9][0-9] \+090[1-9] \+09[1-9][0-9] \+[1-9][0-9][0-9][0-9] \+[0-9][0-9][0-9][0-9][0-9]+ 5桁以上 ) ([^0-9]|$) 続く文字が数字以外もしくは行末。これが無いと+0900に3桁以下の式でマッチしてしまう Q1 3桁までの表現に0*としてるのはなぜなのでしょうか? 素人考えには [0-9]? [0-9][0-9] [0-9][0-9][0-9] で良いのでは?と思うのです。 [0-9]?|[0-9][0-9][0-9]? これでも0〜1桁と2〜3桁になりますよね? 「0*」という書き方の方が処理が速くなったりとか何か理由があるのでしょうか?
|

|