2013年3月21日木曜日

ひとつひとつ順を追って処理する

分かってるようで分かってなかった正規表現。課題を提出した後に間違いに気づきました。
ここで書くとネタバレになるので適当にサンプルを選んで

(1)正社員比率が非常に小さい(約10%)。 
(2)店長を管理職にして、残業手当を支払っていない。
(3)社員の教育にコストを掛けていない。

(99)適当なサンプルの最後。

上記の箇条書きが100近くあると仮定。正規表現で下記に変更したい。


正社員比率が非常に小さい(約10%)。 
店長を管理職にして、残業手当を支払っていない。
3.社員の教育にコストを掛けていない。
99.適当なサンプルの最後。


行頭パーレンは削除、数字はそのまま(キャッシュ)、数字の後のパーレンを全角ドットに変更。

行頭パーレン→^(
数字はそのまま(キャッシュ)([0-90-9])+

数字の後のパーレンは行頭パーレン+数字はそのままの後にくる→)

^(で検索、マッチ箇所を確認。
続けて^(([0-90-9])+で検索、マッチ箇所を確認。
最後に^(([0-90-9]))で検索。マッチ箇所を確認。

置換は\1.

一度にやろうとしない。絶~対やろうとしない。
ココ、すっげぇ~重要!
簡単なものはともかく、先読み戻り読み混在のものは混乱するから。

で、せうぞーさんの
[InDesign][regex]正規表現で数字の桁数を表す

は何度でも読む価値ありの名エントリー

(?<![\d,\.])\d(?![\d,\.])

否定後読みと否定先読みが使われてます。

戻り(後)読み+マッチ文字+先読み なんですね。

先読み+マッチ文字+後読みとよく間違えます。


正規表現の先読みと後読みはどっちがどっちだかわかりにくいんだよ!(追記あり)
から画像を拝借しました(^^;A


応用で肯定後読みと肯定先読み、否定後読みと肯定先読み、肯定後読みと否定先読みで世界が広がるんです。今更なんですが手を動かさないと分かりませんです。

0 件のコメント:

コメントを投稿