リンクをクリップボードにコピー
コピー完了
はじめまして、質問します。
[]内の文字と[A]プラグや[B]スイッチなど、[]のあとに
プラグまたはスイッチと続く文字列を黒太字にする正規表現スタイルと、
[Aボタン][Bボタン]などの、[]内に●●●●ボタンと含まれる場合に
赤太字にするスタイルを適応させる正規表現スタイルを書いてみたのですが
それぞれが同じ段落内に2回出てくると、間の関係ない文字までスタイルが適用されてしまいます。
正規表現スタイルには以下のように書いています。
赤太字は[.+ボタン?]
黒太字は[.+?]|[.+?]プラグ|[.+?]スイッチ
理想の例文)
[スタート]するには、[A]スイッチを押したのち[Bボタン]を3回押すと[ランプ]が光ります。
こういう感じにしたいのですが…
実際の文章)
[スタート]するには、[A]スイッチを押したのち[Bボタン]を3回押すと[ランプ]が光ります。
となってしまいます。
どなたかアドバイスいただけませんでしょうか…
よろしくお願いします。
リンクをクリップボードにコピー
コピー完了
どうでしょう?
リンクをクリップボードにコピー
コピー完了
お返事ありがとうございます!無事適応できました。
本当に助かりました…!
リンクをクリップボードにコピー
コピー完了
[Aボタン]は緊急時のみ[D]プラグを併用します
となってほしいところが
[Aボタン]は緊急時のみ[D]プラグを併用します
となるのは何が理由でしょうか…
まだ見ていらしたら、教えていただければと思います。
リンクをクリップボードにコピー
コピー完了
あーごめんなさい…。ちょっと手抜きですけど、こんなんでもいいかなと。
誰かがもっとうまく書いてくれるかもしれません。
リンクをクリップボードにコピー
コピー完了
エラーの原因ですけど、正規表現は最長一致の原則があります。
複数のマッチする文字列があると、一番長いマッチ文字列に適用するというものです。
そのため、
[.+ボタン]
という正規表現パターンは
[Bボタン]
にマッチしますが、同時に
[A]スイッチを押したのち[Bボタン]
にも
[スタート]するには、[A]スイッチを押したのち[Bボタン]
にも
[スタート]するには、[A]スイッチを押したのち[Bボタン]を3回押すと[ランプ]
にもマッチします。
最長一致なので、これらのマッチする文字列のうち一番長い文字列が採用されているというわけです。
それを避けるためには、どの文字でもマッチする「.」(ピリオド)を
使用してはいけません。目印となる文字にもマッチするからですね。
ですので、パターンの書き方としては、
[[^]]+ボタン]
つまり「目印となる文字を除く文字にマッチする」という書き方をしないといけないわけです。
ですので、monokanoさんの回答では不十分なのです。
ここまで書けば自力で解決できるでしょう。
リンクをクリップボードにコピー
コピー完了
お二方のお返事、本当に感謝します!
(密かに憧れお慕いしておりました)おーまち様の回答で
繰り返しの謎が解けました!ピリオドのせいだったのですね。
monokano様のアイデアの]プラグと]スイッチを併用して、なんとか完成しました!
ありがとうございました!
リンクをクリップボードにコピー
コピー完了
あ、訂正。
[.+ボタン]
は
[スタート]するには、[A]スイッチを押したのち[Bボタン]を3回押すと[ランプ]
にはマッチしないです。
いろいろ書いてたのでおかしくなりました。