用正则表达式获取最后3个字符

时间:2018-05-15 14:55:09

标签: javascript regex

我有这个字符串:

  

Pro-King Construction Ltd.:AF28118-CGY - 星巴克

我试图让CGY使用正则表达式

这一个:

/(?<=:)(.*?)(?=-)/g

获取AF28118

这一个:

/(?<=-)[^\s]+/g

获取CGY,但也获得King,因为它位于-

之后

这一个:

/(?<=:)[^\s]+/g

获取AF28118-CGY

有谁知道如何才能获得CGY

2 个答案:

答案 0 :(得分:0)

你不应该在JS中使用lookbehinds,因为并非所有主流浏览器都支持它。如果您要提取CGY,则需要捕获组。几乎所有包含外观的案例都可以使用捕获组来完成:

&#13;
&#13;
var str = `Pro-King Construction Ltd.:AF28118-CGY - Starbucks`;
console.log(str.match(/-([A-Z]+)( *-)/)[1]);
&#13;
&#13;
&#13;

答案 1 :(得分:0)

为什么不将字符串拆分为&#34; - &#34; (假设所有其他字符串的格式都相同)然后只抓住你要找的项目?在您的情况下,代码看起来像下面的

str_to_extract = "Pro-King Construction Ltd.:AF28118-CGY - Starbucks" final_str = str_to_extract.split("-")[2].strip()

final_str现在应该是CGY,这是你想要的

希望这会有所帮助:)

相关问题