首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正则表达式,搜索“某个字符串”之前的字符串

正则表达式,搜索“某个字符串”之前的字符串
EN

Stack Overflow用户
提问于 2017-04-04 22:01:11
回答 1查看 84关注 0票数 1

我正在尝试在一个批处理文件中运行一个正则表达式,它将在文本文件中搜索字符串。但是,我的字符串的唯一标识符位于字符串之后,但在同一行上。

我在文件中搜索某个项目的注册表项。

代码语言:javascript
运行
复制
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{RegistryKey}   DisplayName    REG_SZ    Node.js

唯一唯一的字符串是Node.js部分,所以我需要使用regedit在DisplayName REG_SZ Node.js文本之前查找RegistryKey。如果有人对此有任何建议,那将是有帮助的。

当前选择我正在使用的字符串

代码语言:javascript
运行
复制
/(\{.*\})(\n\s*.)(DisplayName    REG_SZ    Node.js)

我可以选择字符串。有没有办法批量访问抓取组1?这样我就可以得到我需要的registryKey了?

通过请求编辑:

我现在正在批量尝试这样的东西

代码语言:javascript
运行
复制
@ECHO off 
::reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{6BA2207A-7E42-434C-8DD4-A2FFC1D9EA68}" > nul
REG Query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ /V "DisplayName" /S >> testSearch.txt
::type "testName"
for /F "tokens=*" %%A in (testSearch.txt) do echo %%A
findstr /r /x "/(\{.*\})(\n\s*.)(DisplayName    REG_SZ    Node.js)" testSearch.txt >> saveLine.txt
pause

我现在的问题是我只想保存控制组1( {registryKey})我想我可以使用保存的文本文件并在javascript中解析它来返回注册表项,我一直在使用大量的Javascript和批处理通过节点交织在一起。

EN

回答 1

Stack Overflow用户

发布于 2017-04-05 00:46:51

解析字符串的batch方法是for循环。要提取字符串的一部分(或某些部分),请使用适当的标记和分隔符。要查找文本文件中的正确行,请使用findfindstr

代码语言:javascript
运行
复制
@echo off
setlocal 
for /f "tokens=1-3 delims={}" %%a in ('type b.txt^|find "DisplayName    REG_SZ    Node.js"') do (
  echo %%a
  echo %%b
  echo %%c
)

如果我没理解错的话,您只需要第一个令牌%%a

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43209457

复制
相关文章

相似问题

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