我有下一个字符串-"#Value# #value2# (#value3#) .. #valueN#"
我需要编写一个正则表达式来获取数组["Value", "#value2#", "#value3#", "valueN"]

接下来,我尝试了:

  var regexp = /#([A-z]+)#/gi;
  var string = "#Value# #value2# (#value3#) .. #valueN#";
  string.match(regexp);


但是我只获得字符串中表达式的第一个和最后一个条目,但是我需要获取所有条目。

请注意,整个字符串会随时间变化,我需要获取#符号之间的所有文本条目。

谢谢。

最佳答案

正则表达式缺少数字部分([0-9]\d):

> "#Value# #value2# (#value3#) .. #valueN#".match(/#[a-z\d]+#/ig)
["#Value#", "#value2#", "#value3#", "#valueN#"]




顺便说一句,/[A-z]/不仅匹配字母,而且匹配Za之间的字符:[\]^_`。小心!

/[A-z]/.test('[')
true


也许您是说/[A-Za-z]//[A-Z]/i/[a-z]/i吗?

关于javascript - 正则表达式,字符串中#valueN#的所有条目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20328128/

10-10 17:41