CSSセレクタとXPathの判別 ふたたび

CSSセレクタとXPathの判別 - ロックスターになりたいのやつだめだった。

my $test = $exp;
        $test =~ s/".+?"//g;
        my $xpath = $test =~ m!/! ? $exp : HTML::Selector::XPath::selector_to_xpath($exp);

これだとxpathが id("next") だけだったりするとCSSだと誤認識されてはまる。
めっちゃアドホックだけど

my $xpath = ( $test =~ m!/! or $exp =~ m/^\s*[\w\-]+\(.+?\)\s*$/ ) ?
            $exp : HTML::Selector::XPath::selector_to_xpath($exp);

に変えた。関数だったらXPathということで。

あとsnj14先生の


@ku xpath/css判別の件,http://tinyurl.com/6du6qh のexampleを見たところ,E[class=t/s]とかもありそうな感じします.実際確認したわけじゃないんですけど一応報告.
の件も。クオートを省略しないという運用でカバーできるのでいいとおもってます。
厳密にはXPathCSS selectorを区別することはできないから少しは人間が手間をかけてあげないといけないという立場。