首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提取两个单词之间的字符串

提取两个单词之间的字符串
EN

Stack Overflow用户
提问于 2017-04-13 12:52:04
回答 1查看 880关注 0票数 1

我尝试使用以下方法获取当前目录中每个文件的translator.t('')之间的所有字符串:

代码语言:javascript
复制
get-childitem . -include *.ts -rec | select-string -pattern "(?<=translator.t\(\')(.*)(?=\'\))"

它不工作,它放在外壳上(例如)

代码语言:javascript
复制
app\services\fxutils.service.ts:855:                return this.translator.t('setup_flags');
app\services\fxutils.service.ts:857:                return this.translator.t('zone1_setup');
app\services\fxutils.service.ts:859:                return this.translator.t('zone2_setup');
app\services\fxutils.service.ts:892:                        return this.translator.t('0');
app\services\fxutils.service.ts:894:                        return this.translator.t('1');
app\services\fxutils.service.ts:904:                        return this.translator.t('scenario') + ' ' + v
app\services\fxutils.service.ts:908:                        return this.translator.t('sequence') + ' A';
app\services\fxutils.service.ts:910:                        return this.translator.t('sequence') + ' B';
app\services\fxutils.service.ts:918:                        return this.translator.t('scenario') + ' ' + v
app\services\fxutils.service.ts:922:                        return this.translator.t('sequence') + ' A';
app\services\fxutils.service.ts:924:                        return this.translator.t('sequence') + ' B';
app\services\fxutils.service.ts:931:                        return this.translator.t('-1');
app\services\fxutils.service.ts:941:                        tmp.vlm = this.translator.t('-1');
app\services\fxutils.service.ts:946:                        tmp.vlt = this.translator.t('-1');
app\services\fxutils.service.ts:1017:                return this.translator.t('scenario') + ' ' + num;
app\services\fxutils.service.ts:1025:            else if (val.vlm == 101) return this.translator.t('reset_
app\services\fxutils.service.ts:1026:            else if (val.vlm == 102) return this.translator.t('reset_
app\services\fxutils.service.ts:1027:            else return this.translator.t('no_action');
app\services\fxutils.service.ts:1035:            else if (val.vlm == 101) vlm = this.translator.t('reset_u
app\services\fxutils.service.ts:1036:            else if (val.vlm == 102) vlm = this.translator.t('reset_d
app\services\fxutils.service.ts:1037:            else vlm = this.translator.t('no_action');
app\services\fxutils.service.ts:1040:            else vlt = this.translator.t('no_action');
app\services\fxutils.service.ts:1046:            else if (num == 0) return this.translator.t('cmd_disarm')
app\services\fxutils.service.ts:1047:            else if (num == 1) return this.translator.t('cmd_arm');
app\services\fxutils.service.ts:1052:            else if (num == 1) return this.translator.t('t1');
app\services\fxutils.service.ts:1053:            else if (num == 2) return this.translator.t('t2');
app\services\fxutils.service.ts:1054:            else if (num == 3) return this.translator.t('t3');
app\services\fxutils.service.ts:1057:            if (num == -1) return this.translator.t('no_action');
app\services\fxutils.service.ts:1061:            if (num == -1) return this.translator.t('no_action');
app\services\fxutils.service.ts:1062:            else if (num == 1) return this.translator.t('disable');

但我只想匹配并在外壳中加上以下单词: setup_flags,zone1_setup等.

我怎么能拿到这个?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-13 13:00:34

您必须访问从Matches cmdlet返回的Select-String属性:

代码语言:javascript
复制
get-childitem . -include *.ts -rec  |
    select-string -pattern "(?<=translator.t\(\')(.*)(?=\'\))" | 
    ForEach-Object {
        $_.Matches.Groups[1].value
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43392867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档