我有这个字符串:
"AED 149: "Instant Redemption A 10AED""
我怎样才能有正则表达式来获取此文本?
"Instant Redemption A 10AED"
目前我有这个
var regEx = new RegExp(currency + ' ' + '[\\d,.]+: (.*)', "ig");
现在货币值为AED
。
但这会让我"AED 149: "Instant Redemption A 10AED""
作为匹配
我是否可以修改我的正则表达式以仅获得此结果:"Instant Redemption A 10AED"
?
答案 0 :(得分:2)
将我的评论转移到答案中以便更好地理解。
你的正则表达式很好,但不需要global
标志。你只需要像这样使用捕获的组#1:
var currency = 'AED'
var regEx = new RegExp(currency + ' ' + '[\\d,.]+: (.*)', "i");
var s = 'AED 149: "Instant Redemption A 10AED"'
var m = s.match(regEx);
console.log(m[1]);
//=> "Instant Redemption A 10AED"
答案 1 :(得分:0)
如果你总是使用相同的格式,你可以在没有正则表达式的情况下获得它,只需使用split:
var my_string = 'AED 149: "Instant Redemption A 10AED"';
my_string.split(':')[1]; //Will return "Instant Redemption A 10AED"
希望这会有所帮助。
答案 2 :(得分:0)
var str = "AED 149: "Instant Redemption A 10AED"";
str.replace(/[^\:]+\:[^\"]+\"([^\"]+)\"/, "$1");