提取特定模式(% %)内的所有单词的正则表达式

3

我想要的是:

这些句子中会有一些在% %之间的单词,我想要将它们全部提取出来。

例如:

"This is a %varA% and %varB% and that one is a %VarC%"

当我通过Javascript exec运行时,我希望能够得到一个包含%varA%,%varB%和%varC%的数组。

正则表达式应该怎么写呢?我尝试了很多次,但都不能将每个单词分开。VarA、VarB等都只是由a-Z和0-9组成的单词,没有特殊字符。


你至少尝试了几件事吗? - Thomas Ayoub
1
/%(\w+)%/g 应该适用于您。 - anubhava
尝试获取数组,请使用以下代码:"This is a %varA% and %varB% and that one is a %VarC%"。match(/%\w+/g) - n0m4d
@ThomasAyoub 我试过了,但是没太明白。我在错误的地方使用了\w+。 - Gerry
分享你的研究可以帮助每个人。告诉我们你尝试过什么以及为什么不符合你的需求。这表明你花时间尝试自己解决问题,它可以避免我们重复显而易见的答案,最重要的是它可以帮助你获得更具体和相关的答案 :) - Thomas Ayoub
1个回答

8

使用正则表达式/%(\w+)%/gString match函数

/%(\w+)%/g的解释:

  • %匹配字符%
  • 第一个捕获组 (\w+)
    • \w+匹配任何单词字符[a-zA-Z0-9_]
      • 量词:+,匹配一个或多个,尽可能多地返回[贪婪模式]
  • %匹配字符%
  • g修饰符:全局模式。所有匹配(不在第一次匹配时返回)

var string = 'this is a %varA% and %varB% and %varC%';

var regExp = /%(\w+)%/g;

document.write(string.match(regExp));


3
谢谢你的回答,也谢谢你没有称呼我蠢笨。 - Gerry
3
“@Gerry,愚蠢的问题并不存在...只有愚蠢的回答!” - j3ff

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接