【发布时间】:2021-08-03 10:50:59
【问题描述】:
我正在尝试使用定界符“_”(下划线)断开字符串,并使用正则表达式从中提取特定值。但是,由于每个子字符串中都有下划线字符,所以我遇到了困难。
你能告诉我怎么做吗-->
字符串:GOOGLE_CPC_(CAMPAIGN_NAME)_(AD_GROUP)_SEARCH
我需要从列表中分别提取CAMPAIGN_NAME 和AD_GROUP。
谷歌应用脚本我需要这个
【问题讨论】:
我正在尝试使用定界符“_”(下划线)断开字符串,并使用正则表达式从中提取特定值。但是,由于每个子字符串中都有下划线字符,所以我遇到了困难。
你能告诉我怎么做吗-->
字符串:GOOGLE_CPC_(CAMPAIGN_NAME)_(AD_GROUP)_SEARCH
我需要从列表中分别提取CAMPAIGN_NAME 和AD_GROUP。
谷歌应用脚本我需要这个
【问题讨论】:
不清楚为什么需要用下划线分割它。如果您只想捕获括号中的值,您可以使用正则表达式
import re
mystring = "GOOGLE_CPC_(CAMPAIGN_NAME)_(AD_GROUP)_SEARCH"
matches = re.findall(r"\((.+?)\)", mystring)
print(matches)
输出
['CAMPAIGN_NAME', 'AD_GROUP']
【讨论】:
以下正则表达式可以满足您的需要。
[(](.*?)[)]
它匹配括号,然后将括号内的所有字符分组。你用 ?过滤非贪婪,所以你得到2组,这是你需要的组。
【讨论】:
您正在寻找 Google Apps 脚本中的解决方案,这个 sn-p 可以为您完成这项工作:
const str = 'GOOGLE_CPC_(CAMPAIGN_NAME)_(AD_GROUP)_SEARCH';
const result = str.match(/(?<=\()([^\(\)]+)(?=\))/g);
console.log(result);
它基本上匹配括号内的所有值并将它们放入result 数组中。因此,您的广告系列名称为 result[0],您的广告组名称为 result[1]。
如果这有帮助,请告诉我。
【讨论】: