创建匹配Python元组结构的正则表达式

0 投票
1 回答
1036 浏览
提问于 2025-04-16 14:19

我正在做一个JavaScript插件,每次页面加载时都会运行,它会把每个匹配的结构替换成一个链接……这个链接会重定向到一个网络应用程序/数据库。这是为《骑马与砍杀》游戏的程序员准备的资源。

理论上这很简单,但我在成功的路上遇到了一个巨大的障碍:正则表达式。

即使有一个叫QuickRegex的程序帮忙,我还是无法让结构匹配上。或者如果我没有做好适当的条件设置,它就会输出错误的结果。我要匹配的结构如下:

(item_set_slot, "itm_heavy_crossbow", slot_item_multiplayer_item_class),

我想提取item_set_slot并把它变成一个链接,链接地址是http://mbcommands.ollclan.eu/#$1


这是我正在使用的代码,效果还算可以。;)

/* Mount&Blade Command Database Linking by Swyter */
function swymbcommandshooker(){
/* Regular HTML Expressions */
document.getElementsByTagName("body")[0].innerHTML=document.getElementsByTagName("body")[0].innerHTML.replace(/[\(]([a-zA-Z_]+)[\,]/gi, "(<a href='http://mbcommands.ollclan.eu/#$1' title='[?] Take an look in the Command Database' target='_blank'>$1</a>,");

/* Python highlighter Support...*/
document.getElementsByTagName("body")[0].innerHTML=document.getElementsByTagName("body")[0].innerHTML.replace(/&#40;</span>([_a-z]+)\,/gi, "&#40;</span><a href='http://mbcommands.ollclan.eu/#$1' title='[?] Take an look in the Command Database' target='_blank'>$1</a>,");

}
addOnloadHook( swymbcommandshooker );

提前谢谢你们。

1 个回答

1

嗯,我不太确定我是否理解你说的对,但如果你真的只是想在“(item_set_slot, "itm_heavy_crossbow", slot_item_multiplayer_item_class)”中找到“item_set_slot”,那么下面这个正则表达式应该可以做到:

/^\(([a-z_]+),/i

生成URL的JavaScript代码可能看起来像这样:

var tuple = '(item_set_slot, "itm_heavy_crossbow", slot_item_multiplayer_item_class),';
var url = tuple.replace(/^\(([a-z_]+),.*/i, 'http://mbcommands.ollclan.eu/#$1');

注意正则表达式后面加的.*,这是为了匹配这个元组的其余部分。

撰写回答