[スレッド全体]

[8239] 正規表現の戻り読みができません返信 削除
2017/4/28 (金) 04:43:57 セイロン
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.9) Gecko/20100101 Goanna/3.2 Firefox/45.9 PaleMoon/27.2.1
はじめまして。
正規表現にバグを見つけたかもしれません。
以下の正規表現を「行の頭にはない//」という意図で検索してみました。

(?<!\r\n)//

ですが、検索結果に行の頭にある//ばかりでした。
不思議だなと思って「!」を削除してみたら、以下のエラーが出ました。

invalid char in group name <\r\n>

どうやら「(?<」を名前付き捕獲式集合と勘違いしているようです。
こちらで構文を間違っているのでしょうか。
でなければ、修正して頂けないでしょうか。
どうぞよろしくお願いします。


[8240] Re:正規表現の戻り読みができません返信 削除
2017/4/29 (土) 00:55:27 ds14050
Mozilla/5.0 (Windows NT 6.0; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0
▼ セイロンさん

サクラエディタはテキストデータを1行ごとに別々に持っているため、
検索も1行ごとに行っています。そのため、ある行の頭より前に前の
行の改行があるわけではないのです。正規表現には ^ というテキスト
全体の頭や行の頭を意味する特殊記号がありますので、こちらを使って
ください。こうです (?<!^)// あるいはまたこう (?<=.)//

>「(?<」を名前付き捕獲式集合と勘違いしているようです。

正規表現ライブラリになったつもりで考えると、(?< の次に = が来たら
戻り読み、! が来たら否定の戻り読み、それ以外なら名前付き捕獲式集合
のはずなんだけど、\r\n というのは有効な名前ではない、ってところ
でしょうね。


[8241] Re2:正規表現の戻り読みができません返信 削除
2017/4/29 (土) 04:21:48 セイロン
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.9) Gecko/20100101 Goanna/3.2 Firefox/45.9 PaleMoon/27.2.1
▼ ds14050さん
回答してくれてありがとうございます。
とても参考になりました。
行を別々に扱っていたのですね。
お勧めの正規表現で検索できました。
ありがとうございました。

[▼次のスレッド]
INCM/CMT
Cyclamen v3.81