[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"
>

In This Thread

Prev Next