✅カッコが文中にある作品が未購入扱いになる
ページを作成している作品が未購入扱いになる
検索クエリを調べると
刑部姫コスプレイヤーのフリをした刑部姫が何故か俺のサークルでコスプレ売り子している話
ページを作るときには
刑部姫コスプレイヤーのフリをした刑部姫(本人)が何故か俺のサークルでコスプレ売り子している話
検索クエリで(本人)が消えている
Scrapboxの検索APIの仕様が変わっているのかも?基素.icon
原因
「娘の友だち (1) (コミックスDAYSコミックス)」を「娘の友だち」で検索できるように括弧を削除しているのが問題
対応
こうする
数字のカッコは最初に外す
(7)とか関数が書いてある
.replace(/\((\d+)\)/g, " $1 ")
行頭のカッコはラベルとみなして消す
(最新刊)(セール)みたいなものは消す
.replace(/^\(.*?\)/, "")
これが起きたらやめる
(かっこから始まるようなタイトル)があったらこれをやめて「最新刊」とか「セール」をブラックリスト形式にする
文中のカッコは外さない
どこまでが文中か探せばいいのかわからない
末尾のカッコはラベルとみなして消す
.replace(/\(([^)]*)\)$/, "")
これはダメだった
.replace(/\(([^)]*)\)[^(]*$/, "")
https://gyazo.com/c9a2f175e32c264cea9907100cbdf7d7
code:js
// 末尾にカッコがあれば期待通り動くが
// 途中にカッコがあって末尾にない場合に、こうなってしまう
"刑部姫コスプレイヤーのフリをした刑部姫(本人)が何故か俺のサークルでコスプレ売り子している話".replace(/\((^)*)\)^(*$/, "") '刑部姫コスプレイヤーのフリをした刑部姫'
こうなる
code:js
"(最新刊)刑部姫コスプレイヤーのフリをした刑部姫(本人)が何故か俺のサークルでコスプレ売り子している話 (1) (レーベル)".replace(/\((\d+)\)/g, " $1 ").replace(/^\(.*?\)/, "").replace(/\((^)*)\)$/, "") 刑部姫コスプレイヤーのフリをした刑部姫(本人)が何故か俺のサークルでコスプレ売り子している話 1
"刑部姫コスプレイヤーのフリをした刑部姫(本人)が何故か俺のサークルでコスプレ売り子している話".replace(/\((\d+)\)/g, " $1 ").replace(/^\(.*?\)/, "").replace(/\((^)*)\)$/, "") 刑部姫コスプレイヤーのフリをした刑部姫(本人)が何故か俺のサークルでコスプレ売り子している話
これを保証するテストを追加した
よくない対応
かっこがあったら、カッコが出る前までで検索する
「(最新刊) タイトル」のように先頭にカッコがあるパターンがある
まだこの形式に遭遇したことはない