提取字符串中文件扩展名 (.ps1) 之前的数字

2023-11-29

创建文件的 cmdlet 返回一个文本块,其中包含文件的名称。该文件的格式为字符串[数字].ps1,但数字是随机的,所以我想提取该数字并将其存储在变量中。

供参考的文本块:

  +         ~~~~~\nA 'using' statement must appear before any other statements in\
    \ a script.\nAt C:\\Packages\\Plugins\\Microsoft.CPlat.Core.RunCommandWindows\\\
    1.1.3\\Downloads\\script35.ps1:20 char:8\n+         using Microsoft.Build.Framework;\n\
    +              ~\nMissing using directive\nAt C:\\Packages\\Plugins\\Microsoft.CPlat.Core.RunCommandWindows\\\
    1.1.3\\Downloads\\script35.ps1:20 char:3\n+         using Microsoft.Build.Framework;\n\
    +         ~~~~~\nA 'using' statement must appear before any other statements in\
    \ a script.\nAt C:\\Packages\\Plugins\\Microsoft.CPlat.Core.RunCommandWindows\\\
    1.1.3\\Downloads\\script35.ps1:21 char:8\n+         using Microsoft.Build.Utilities;\n\
    +              ~\nMissing using directive\nAt C:\\Packages\\Plugins\\Microsoft.CPlat.Core.RunCommandWindows\\\
    1.1.3\\Downloads\\script35.ps1:21 char:3\n+         using Microsoft.Build.Utilities;\n\
    +         ~~~~~\nA 'using' statement must appear before any other statements in\

我想$result -match '\d\d+(?=\.\w+)'可以,但它只返回找到该号码的行,而不仅仅是号码。


With a 收藏(而不是单个值)作为 LHS,-match操作员:

  • 充当filter- 即返回子数组匹配元素而不是布尔值

  • does not填充自动的$Matches多变的与匹配运算符的结果。

这就是为什么你的输出包含匹配行作为一个整体.


要仅返回匹配的部分,您可以使用switch陈述-Regex循环遍历行数组的选项,在这种情况下$Matches is为每个输入行填充:

# Array of sample lines.
# For illustrative purposes I've tweaked the `script<number>.ps1`
# tokens to have successive numbers.
$lines = @'
 +         ~~~~~\nA 'using' statement must appear before any other statements in\
    \ a script.\nAt C:\\Packages\\Plugins\\Microsoft.CPlat.Core.RunCommandWindows\\\
    1.1.3\\Downloads\\script35.ps1:20 char:8\n+         using Microsoft.Build.Framework;\n\
    +              ~\nMissing using directive\nAt C:\\Packages\\Plugins\\Microsoft.CPlat.Core.RunCommandWindows\\\
    1.1.3\\Downloads\\script36.ps1:20 char:3\n+         using Microsoft.Build.Framework;\n\
    +         ~~~~~\nA 'using' statement must appear before any other statements in\
    \ a script.\nAt C:\\Packages\\Plugins\\Microsoft.CPlat.Core.RunCommandWindows\\\
    1.1.3\\Downloads\\script37.ps1:21 char:8\n+         using Microsoft.Build.Utilities;\n\
    +              ~\nMissing using directive\nAt C:\\Packages\\Plugins\\Microsoft.CPlat.Core.RunCommandWindows\\\
    1.1.3\\Downloads\\script38.ps1:21 char:3\n+         using Microsoft.Build.Utilities;\n\
    +         ~~~~~\nA 'using' statement must appear before any other statements in\
'@ -split '\r?\n'

# Perform the matching, line by line,
# and output each line's matching part,
# resulting in an array of strings.
# Prepend 
#     $result = 
# to store the array in a variable.
switch -Regex ($lines) {
  '\d+(?=\.\w+)' { $Matches[0] } # to extract only the *1st* match,
                                   # append `; break` inside the { ... }
}

上面的结果是:

35
36
37
38

注意switch还支持直接从文件中读取行,使用-File option
(switch -Regex -File $filePath { ... }).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

提取字符串中文件扩展名 (.ps1) 之前的数字 的相关文章

  • 匹配不可打印/非 ASCII 字符并从文本中删除

    我的 JavaScript 很生疏 所以任何有关这方面的帮助都会很棒 我需要检测字符串中的不可打印字符 控制字符 如 SOH BS 等 以及扩展 ascii 字符 如 并将其删除 但我不知道如何编写代码 谁能指出我正确的方向来解决这个问题
  • Powershell Invoke-SSHCommand:使用“1”个参数调用“EndExecute”时出现异常

    我正在尝试通过 powershell 中的 Posh SSH 模块连接到 Netscaler SDX 服务器 以搜索特定文件 然后下载它 如果我用 putty 连接到服务器 它就可以工作 然后我可以输入 shell 来打开普通的 bash
  • 如何在文件夹中的 xml 文件中 grep 一个单词

    我知道我可以使用 grep 在这样的文件夹中的所有文件中查找单词 grep rn core 但我当前的目录有很多子目录 我只想搜索当前目录及其所有子目录中存在的所有 xml 文件 我怎样才能做到这一点 我试过这个 grep rn core
  • 使用 shell_exec 将 PHP 转换为 Powershell

    如果我运行 output shell exec powershell get service dhcp 我得到了 dhcp 服务的完美输出 显示正在运行 但如果我运行 output shell exec powershell get use
  • 通过快捷方式更改桌面的 Powershell 脚本

    关于为什么从 w in PS 运行时有效 但从定义为以下的快捷方式运行时无效的任何想法和建议 SystemRoot system32 WindowsPowerShell v1 0 powershell exe File C Users bi
  • 句子中模糊的电子邮件地址

    我正在输出日志消息 需要隐藏其中的电子邮件地址 日志消息可能如下所示 A lead was saved for email protected cdn cgi l email protection Date 11th December 20
  • 在 C# 中编写批处理脚本的好方法是什么?

    我想用 C 编写简单的脚本 我通常会使用 bat 或 4NT btm 文件 复制文件 解析文本 询问用户输入等等 相当简单 但在批处理文件中正确执行这些操作确实很困难 例如没有例外 我熟悉像 AxScript 这样的命令行 脚本 包装器 这
  • 将服务器添加到 SQL Management Studio

    我想将不同服务器上的一堆 SQL 2000 2005 的混合 服务器实例添加到我的 SSMS SQL Managment Studio 注册服务器 我正在遵循本教程here http sev17 com 2008 12 registerin
  • 替换 Greasemonkey 中的部分 URL

    我正在尝试使用 Greasemonkey 脚本替换 url 的一部分 但很难实现我想要做的事情 原始网址如下 http x1 example to images thumb 50 157 1571552600 jpg http x2 exa
  • 防止集成终端自动打开

    每当我在 VS Code 中打开 PowerShell 脚本时 集成终端就会打开 如何防止集成终端自动打开 我搜索了 终端 的设置 但没有发现与自动启动相关的内容 VSCode 会记住您的上一次会话 因此 如果关闭终端并退出 VSCode
  • Python替换多个字符串同时支持反向引用

    有一些好方法 https stackoverflow com questions 6116978 python replace multiple strings处理 python 中的同时多字符串替换 但是 我在创建一个高效的函数来实现这一
  • PostgreSQL & regexp_split_to_array + 取消嵌套

    我有这样的绳子 测试1 纽约 X 测试 2 芝加哥 Y 测试 3 宾夕法尼亚州哈里斯堡 Z 我需要的结果是 Column1 Column 2 Column3 Test 1 new york X Test 2 chicago Y Test 3
  • 无法在 Powershell 中运行 R.exe

    我经常发现在命令行 Windows 上运行 R 更有用 然而 当我在 Powershell 中尝试时 我往往会遇到问题 但这可以通过第一次运行轻松克服cmd然后就可以了 这是我执行此操作时遇到的错误R CMD BATCH Invoke Hi
  • 为管道重用自定义对象时出现意外结果

    A while ago I changed my Join Object https stackoverflow com a 45483110 1701026 cmdlet which appeared to cause a bug whi
  • 在 C# 中检查 PowerShell 执行策略的最佳方法是什么?

    当你跑步时Get ExecutionPolicy在 PowerShell 中 它得到有效的执行政策 https learn microsoft com en us powershell module microsoft powershell
  • 正则表达式仅允许特定数字

    我正在寻找一个只允许输入特定数字的正则表达式 例如2 4 5 6 10 18 我尝试过类似的东西 2 4 5 6 10 18 我输入的任何内容都无法通过正则表达式 然后计算机用手指着我并大笑 我哪里出错了 单引号是不必要的 您正在寻找的正则
  • 如何对逗号和句号使用 re.split?

    我有多个字符串 其中单词用逗号或句点分隔 string apple pear grapes carrot cabbage veggies fruit yard 我想根据逗号和句点来分割它 string apple pear grapes c
  • 改进将字符串转换为可读的 url

    以下函数重写包含各种字符的新闻和产品标题的 url 我希望创建的字符串仅包含字母数字值和 但没有结尾 或空格 也没有重复的 下面的函数工作正常 但我想知道是否有任何方法可以将其编写得更简单或更有效 function urlName stri
  • 用于读取类似 CSV 行的 Python 正则表达式

    我想解析传入的类似 CSV 的数据行 值用逗号分隔 逗号周围可能有前导和尾随空格 并且可以用 或 引用 例如 这是有效的行 data1 data2 data3 data4 data5 但这是格式错误的 data1 data2 da ta3
  • Java 相当于 Perl 的 s/// 运算符?

    我有一些代码正在从 Perl 转换为 Java 它大量使用了正则表达式 包括s 操作员 我已经使用 Perl 很长时间了 但仍然习惯 Java 的做事方式 特别是 字符串似乎更难使用 有谁知道或有一个完全实现的Java函数s 这样它就可以处

随机推荐

  • 如何在我的应用程序中将状态栏设置为白色背景和黑色文本(黑色图标)

    我想在我的应用程序中将状态栏设置为白色背景和黑色文本 和黑色图标 我发现一些应用程序可以做到这一点 但是从谷歌搜索 我找不到任何解决方案来做到这一点 有很多关于如何设置状态栏颜色的解决方案 还有像 SystemBarTint 它只能设置背景
  • 使用 jQuery 获取当前 URL? [复制]

    这个问题在这里已经有答案了 我正在使用 jQuery 如何获取当前 URL 的路径并将其分配给变量 示例网址 http localhost menuname de foo bar amp number 0 要获取路径 您可以使用 var p
  • 如何通过脚本创建 crontab

    我需要通过运行来设置服务器的脚本添加一个 cron 作业 我目前正在使用Ubuntu 我可以用crontab e但这将打开一个编辑器来编辑当前的 crontab 我想以编程方式执行此操作 可以这样做吗 这是一个不使用 不要求新作业位于文件中
  • 如何在循环遍历向量时从向量中删除元素?

    我正在循环遍历一个带有循环的向量 例如for int i 0 i lt vec size i 在此循环中 我检查该向量索引处元素的条件 如果某个条件为真 我想删除该元素 如何在循环遍历向量元素时删除向量元素而不崩溃 从 STL 容器中删除满
  • Python - 在列表理解中保留计数器

    是否可以为以下循环编写列表理解 m counter 0 for i x in enumerate l if x field something counter 1 m append counter i 我不知道如何增加列表理解中的计数器 你
  • Symfony - 未找到表单请求的 url

    我正在从事 symfony 项目 我正在与一个不会重定向到自己页面的表单作斗争 action 属性设置为 method 设置为 post 在这种情况下 它应该调用同一页面 但我会以 404 页面结束 这是我的页面在操作文件中的代码 公共函数
  • 无法识别的选择器发送到实例

    我向核心数据支持的 UITableView 添加了索引搜索 搜索工作正常 但是导航回 tableView 后出现此错误 NSSQLRow controllerDidChangeContent 无法识别的选择器发送到实例 0x815edf0
  • javascript - 在单击再次起作用之前需要 onclick 走完全程

    我有这个 javascript 函数 我使用它 当单击时会移动一定的距离 这是在使用大约 7 个 div 的从左到右的滚动条中使用的 我的问题是 在再次使用点击之前 如何让点击先走完整距离 问题是 如果用户快速单击箭头按钮 它会重置距离 有
  • 在属性窗口中更改自定义属性时不会保存

    我为 DataGridView 创建了一个自定义列 原因是我想向列添加属性 类型 我右键单击 DataGridView 并选择 编辑列 然后 当我选择作为自定义列类型的列时 我可以编辑该属性 但如果我在编辑后单击 确定 然后再次转到 编辑列
  • iOS 8 中 UIKeyboardWillShowNotification 的行为是否有变化?

    我有一个简单的UIView块动画 用于在键盘显示时将一组文本字段动画化到视图中 并在键盘隐藏时将它们动画化回来 这在 iOS 6 和 7 中工作得很好 但现在我得到了不正确的行为 这一切都表明了一些变化UIKeyboardWillShowN
  • 查询包含对不同数据上下文中定义的项目的引用

    我在 Stackoverflow 上阅读了其他几篇文章 但我的问题很简单且不同 我有 2 个独立的数据库 这就是为什么我有两个独立的 Datacontext 这是我的查询 我在其中传递参数并将其绑定到我的 GridView if Sessi
  • Ruby/Rails - 如何根据十进制进行验证?

    如何根据小数位数进行验证 例如 假设我们要存储小数点后最多 2 位小数的酒店评级 4 34 3 76 ETC 我在网上读到了基于您与列绑定的精度 比例截断的 sqlite 因此 如果您的精度为 3 小数位数为 2 并输入 1 34567 则
  • 将特定文件复制到新文件夹,同时保留原始子目录树

    我有一个大目录 其中有许多子目录 我正在尝试对其进行排序 我正在尝试将特定文件类型复制到新文件夹 但我想保留原始子目录 def copyFile src dest try shutil copy src dest except shutil
  • 交换两个变量的 XOR 技巧如何真正在字符串上起作用?

    我刚刚遇到了这段代码 用于在 PHP 中交换两个变量的值
  • 检查 iOS 模拟器类型和版本

    我有以下代码片段来检测 iOS 设备 NSString platformNSString size t size sysctlbyname hw machine NULL size NULL 0 char machine malloc si
  • 我可以在 MySQL 下直接在 SQL 中运行 HTTP GET 吗?

    我很乐意这样做 UPDATE table SET blobCol HTTPGET urlCol WHERE whatever LIMIT n 有代码可以做到这一点吗 我知道这应该是可能的 因为MySQL 文档包括添加执行 DNS 查找的函数
  • 等待与事件处理程序异步

    我对如何最好地处理这种情况感到困惑 我不想等待异步调用的响应 具体来说我有 public async Task
  • 如何在 ASP.Net MVC 5 中动态添加新行

    我正在寻求有关如何在 ASP Net MVC 5 应用程序的创建 Razor 视图中向发票添加新行 LineItems 的帮助 我读过几乎所有类似的问题 但没有一个解决了我认为的简单用例 这是我的发票模型类 public class Inv
  • 如何在 Pygame 中生成第二次点击的位置?

    我正在建造河内塔 它应该像这样工作 您单击第一个塔 从您想要磁盘移动的位置 然后单击第二个塔 您希望磁盘移动到的位置 磁盘应从第一个塔 一个列表 移动到第二个塔 另一个列表 我的问题是 当您第一次单击时 代码会生成位置 不久之后您应该再次单
  • 提取字符串中文件扩展名 (.ps1) 之前的数字

    创建文件的 cmdlet 返回一个文本块 其中包含文件的名称 该文件的格式为字符串 数字 ps1 但数字是随机的 所以我想提取该数字并将其存储在变量中 供参考的文本块 nA using statement must appear befor