ExpandHelpのパラメタ拡張方法を考
既存の実装
現時点で思いつくもの
全ての組み合わせを展開する
pros
cons
組み合わせが膨大になる
時計を([0-2]?[0-9])(時|:)([0-5][0-9])分?に(あわせる|セットする)だけでも1000パターンを超える
任意文字マッチに対応できない
DickDuckGoで(.+)を検索するみたいなことができない
組み合わせ数が膨大になる正規表現部分だけ別に判定する
時計を([0-2]?[0-9])(時|:)([0-5][0-9])分?に(あわせる|セットする)の場合
時計を ([0-2]?[0-9])(時|:)([0-5][0-9]) 分?に(あわせる|セットする)に分解する
このあとどうすればいい?takker.icon
行き詰まってしまった
DickDuckGoで(.+)を検索する
これどうやってマッチさせるんだ?
期待する動作
google→DickDuckGoでgoogleを検索する
入力文字列が(.+)にマッチするかだけ判定すればいい
dickduckgo→DickDuckGoでdickduckgoを検索する
同様
dick duck→DickDuckGoでduckを検索する
splitter(今回は とする)で分割された文字列は、次のパターンで考えたい
分割文字列がword1の1個だった場合
/icons/fail.iconword1がDickDuckGoでにマッチ
(.+)にマッチする単語がなくなるので不可
word1が(.+)にマッチ
分割文字列がword1, word2の2個だった場合
word1がDickDuckGoでにマッチ&word2が(.+)にマッチ
word1が(.+)にマッチ&word2がを検索するにマッチ
分割文字列がword1, word2, word3の3個だった場合
word1がDickDuckGoでにマッチ&word2が(.+)にマッチ&word3がを検索するにマッチ
これだけでも組み合わせ爆発するじゃん……
採用できないな
あからさまに難しいなこれ
任意文字にマッチするパラメタは対応しないほうがよさそう