如何用正则表达式将整行大写文本包裹在BBCode加粗标签中
整行全大写内容的BBCode加粗解决方案
需求说明
匹配文本中整行均为大写内容的行,用BBCode的[b][/b]标签包裹,同时保留所有其他内容不变。
原正则的问题
你之前使用的/([A-Z]+(?: [A-Z]+)+)/mg存在两个关键缺陷:
- 未限定整行匹配,可能误匹配非整行的大写片段
- 未覆盖
CROSS-PLAY中的连字符这类常见于大写行的特殊字符,导致部分全大写行无法被识别
修正后的正则方案
正则模式
/^[A-Z\s-]+$/mg
替换字符串
[b]$&[/b]
正则解释
^和$:分别匹配每行的开头和结尾,确保是整行匹配[A-Z\s-]:匹配大写字母、空格和连字符;如果文本中还有其他允许的特殊字符(如!、:),可直接添加到字符集中,例如[A-Z\s-!]+:确保该行至少包含一个有效字符/mg:启用多行模式(m)和全局匹配(g),多行模式下^和$会适配每行首尾,而非整个文本的首尾
替换后示例结果
[b]BUILD THE ULTIMATE BRAWLER[/b]
设计你的终极乐高小人仔英雄,打造独特风格、策略与个性。想做一只带脾气的仙人掌?或是会养战斗鸡的清洁工忍者?还是要挥舞大锤、有仇必报的小丑?完全可以!打造你的终极斗士,并通过解锁内容提升等级!
[b]BATTLE THROUGH EPIC LEGO THEMES[/b]
从Barracuda Bay的海盗海岸,到Ninjago® Seabound的水下洞穴,再到尘土飞扬的西部酒馆和神话般的悟空小侠丛林,所有你喜爱的乐高主题都能加入战斗!沿途收集可解锁的小人仔、增益道具和表情。
[b]CROSS-PLAY WITH FRIENDS ACROSS PLATFORMS[/b]
组队进行4v4对战,与好友结伴游玩,或是参与“人人为己”的大逃杀模式。多种游戏模式下,关卡各有独特挑战与获胜条件。
内容的提问来源于stack exchange,提问作者WLFree
相关产品推荐
相关产品推荐

