我有这个字符串:
Pro-King Construction Ltd.:AF28118-CGY - 星巴克
我试图让CGY
使用正则表达式
这一个:
/(?<=:)(.*?)(?=-)/g
获取AF28118
这一个:
/(?<=-)[^\s]+/g
获取CGY
,但也获得King
,因为它位于-
这一个:
/(?<=:)[^\s]+/g
获取AF28118-CGY
有谁知道如何才能获得CGY
?
答案 0 :(得分:0)
你不应该在JS中使用lookbehinds,因为并非所有主流浏览器都支持它。如果您要提取CGY
,则需要捕获组。几乎所有包含外观的案例都可以使用捕获组来完成:
var str = `Pro-King Construction Ltd.:AF28118-CGY - Starbucks`;
console.log(str.match(/-([A-Z]+)( *-)/)[1]);
&#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,这是你想要的
希望这会有所帮助:)