【问题标题】:Regular expressions for specific parts of a website in StylishStylish 中网站特定部分的正则表达式
【发布时间】:2014-07-11 17:59:46
【问题描述】:

是否可以将时尚风格应用于: http://www.baka-tsuki.org/project/index.php?title=WHATEVER1:WHATEVER2 和(HTTPS 版本)https://www.baka-tsuki.org/project/index.php?title=WHATEVER1:WHATEVER2

鉴于:

WHATEVER1 必须满足不属于以下任何字符组合的条件:Category、User、Meeting、User_talk、Baka-Tsuki、Special、Help、Template、Template_talk、Talk

WHATEVER2 必须满足不属于以下任何字符组合的条件:Registration_Page、Updates、Archive

WHATEVER2 必须满足不以下列任何字符组合结尾的条件:&action=edit、&action=history、&action=info、&printable=yes

我试过了:

regexp('https?://www\\.baka-tsuki\\.org/project/index\\.php\\?title=(?!(Category:|User:|User_talk:|Special:|Help:|Baka-Tsuki:|Template:|Template_talk:|Talk:|Meeting:)).*:(?!(Registration_Page|Updates|Archive)).*(?!(&action=history|&action=edit|&action=info|&printable=yes))')

但是 (?!(Registration_Page|Updates|Archive)) 和 (?!(&action=history|&action=edit|&action=info|&printable=yes)) 部分似乎不起作用(WHATEVER2 条件) .

【问题讨论】:

    标签: regex stylish


    【解决方案1】:

    我将最终的lookahead 更改为lookbehind,以进行结束锚($):

    regexp('^https?://www\\.baka-tsuki\\.org/project/index\\.php\\?
    title=(?!Category:|User:|User_talk:|Special:|Help:|Baka-Tsuki:|Template:|Template_talk:|Talk:|Meeting:)[^:]*
    :(?!Registration_Page|Updates|Archive).*
    (?<!&action=history|&action=edit|&action=info|&printable=yes)$')
    

    我还删除了一些无关的括号(并非每次交替都需要它们)并在冒号之前指定它是非冒号字符 ([^:]*),因此它不会处理超过冒号。

    【讨论】:

    • 通过您的修复, (?!(Registration_Page|Updates|Archive)) 部分现在可以工作,但是 (?!(&action=history|&action=edit|&action=info|&printable=yes))部分仍然不起作用。
    • 当 WHATEVER2 以 &action=edit 或 &action=history 或 &action=info 或 &printable=yes 结尾时应用该样式,但不应该这样做。
    • 你是对的。我读错了我的结果。我发现了真正的问题:匹配最终的“坏”条件需要是消极的向后看,而不是向前看。我已经编辑了我的答案;试试看。
    • 使用当前代码,样式会应用于所有内容,包括 CSS 编辑器,它会“崩溃”(我无法保存样式)。
    • 对不起,我没有Stylish,所以不能直接在那里试用。它适用于正则表达式工具(如 Regex Hero)。尝试将括号放回交替周围;也许出于某种原因在 Stylish 中需要这样做。
    猜你喜欢
    • 2016-12-27
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多