行ごとに、行末から見て、 Xでくくられた部分を検索する。 検索前 検索後
12345X6789X0 1X234X56X9012X345 X1234X567X123 X1234X567X123X 2X123X1234X56X123X
X[^X]*X(?=(([^X]*X){2})*[^X]*$) 別解 (?=(([^X]*X){2})*[^X]*$)X[^X]*X
肯定先読みで、Xが偶数個あるかチェックしてます。 行頭からXでくくられた部分を検索する場合は、 可変長の戻り読みが使えないと無理っぽいですね。 固定長の戻り読みを、選択でひたすらつなげるのもありかもしれませんが 3-21 可変長の戻り読みを模倣 2007/2/8 時点で、可変の戻り読みが使えるのは、 .NETしか知らないです。