我需要帮助使用JavaScript中的Regex(对于Photoshop脚本)来匹配字符串中单词的粗体标记。 (此时并不担心斜体或粗体)。 我不想在这个阶段拆分字符串,我只是想把它切成某些交替的块来使用匹配。
// Be <b>bold!</b> Be fabulous!
应该匹配//(&#34; Be&#34;,&#34; 粗体!&#34;,&#34;太棒了!&#34;) //行注释因为显而易见的原因
在那之后,我将删除粗体标签 - 除非Regex可以一次性完成 - 不要低估它的力量!
这是我到目前为止所拥有的
(.*?)([<b>]+[\S]+[<\/b>]+[\s]+)+(.*)/g
只有它与seen here
的所有内容都不匹配仅仅是为了记录,在任何人建议更简单的JS解决方案之前: 在Photoshop DOM中,您不能编写用粗体混合的常规文本。您可能可以使用Action Manager代码,但生成可能非常令人头疼的文本。 为了解决这个问题(不是理想的解决方案),我将使用常规文本&amp;把它分成适当的地方&amp;交换为粗体。
答案 0 :(得分:1)
[<b>]
是字符类,只需使用<b>
。
/(.*?)(<b>+\S+<\/b>+\s+)+(.*)/g
并将\S
更改为[^<]
/(.*?)(<b>+[^<]+<\/b>+\s+)+(.*)/g
答案 1 :(得分:1)
您可以尝试:
<b>(.*?)<\/b>
示例代码:
var re = /<b>(.*?)<\/b>/gi;
var str = 'Be <b>bold!</b> Be fabulous! ';
var subst = '$1';
var result = str.replace(re, subst);
输出:
Be bold! Be fabulous!
更好尝试String.split()
功能:
var re = /\s*<\/?b>\s*/gi;
var str = 'Be <b>bold!</b> Be fabulous!';
console.log(str.split(re));
输出:
["Be", "bold!", "Be fabulous!"]