[ruby-list:50228] 正規表現の挙動
From:
AOKI Yoshihiro <ml-reader@...>
Date:
2015-09-28 01:25:04 UTC
List:
ruby-list #50228
あおきと申します。
ruby -v
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]
で,下のスクリプト(utf-8)を実行しました。
---
RNOTE_MATCH = /\\RNOTE
(?<arg1>\{(?<id> ([^{}]|\g<arg1>)*)\})
(?<arg2>\{(?<label>([^{}]|\g<arg2>)*)\})
(?<arg3>\{(?<icon> ([^{}]|\g<arg3>)*)\})
(?<arg4>\{(?<title>([^{}]|\g<arg4>)*)\})\n\t
(?<arg5>\{(?<body> ([^{}]|\g<arg5>)*)\})\n
/x
str =
"\\RNOTE{note17}{A}{}{ICON6}
{指数がすべて偶数になれば,自然数$2$乗になる。
(例)$2^{4}\\cdot 5^{2}={(2^{2}\\cdot 5)}^{2}=20^{2}$
}
"
RNOTE_MATCH =~ str
p $~
---
出力結果を整形すると,arg5とbodyの内容が異なるのですが,
正規表現の書き方がまずいのでしょうか...。
#<MatchData
"\\RNOTE{note17}{A}{}{ICON6}\n\t{指数がすべて偶数になれば,自然数$2$乗になる。\n\t\n\t(例)$2^{4}\\cdot 5^{2}={(2^{2}\\cdot 5)}^{2}=20^{2}$\n\t}\n"
arg1:"{note17}"
id:"note17"
arg2:"{A}"
label:"A"
arg3:"{}"
icon:""
arg4:"{ICON6}"
title:"ICON6"
arg5:"{指数がすべて偶数になれば,自然数$2$乗になる。\n\t\n\t(例)$2^{4}\\cdot 5^{2}={(2^{2}\\cdot 5)}^{2}=20^{2}$\n\t}"
body:"2}$\n\t"
>