使用 PowerShell 从文本段落中提取 6 位数字字符串会产生空白数据

2024-05-05

尝试使用 PowerShell 从一段文本中提取 6 位数字字符串,但它仅在一种情况下有效。 6 位数字字符串位于 Windows 剪贴板中的一段文本内。在我的代码中,我期望变量 $Matches[0] 是我要查找的 6 位数字,但结果始终为空。如果我取消注释第 2 行,则 $Matches[0] 将始终是第 2 行中的 6 位代码,即 123456,如下所示。但是,如果我注释掉第 2 行,然后从现实世界的示例中复制一段文本,然后重新运行代码,则 $Matches[0] 不是预期的 6 位字符串,它始终为空。我将在下面介绍这两个示例及其输出。不确定我做错了什么。

工作示例:

$Matches[0] = $null
Set-Clipboard -value "Your PIN is 123456."
$PIN = (Get-Clipboard) -match '\d{6}'
# Get-Clipboard
Write-Output $Matches[0]

上面的代码将按照预期输出以下内容:

非工作示例:如果我注释掉第 2 行:

$Matches[0] = $null
# Set-Clipboard -value "Your PIN is 123456."
$PIN = (Get-Clipboard) -match '\d{6}'
# Get-Clipboard
Write-Output $Matches[0]

并将这段文本复制到 Windows 剪贴板中:

Hello,

您的验证码是351370

此代码将在 20 分钟后过期,以确保您的帐户安全。

输出显示空白,而不是预期的 351370:

想法?


PS C:\> Get-Clipboard
Hello,

Your authentication code is 351370

This code will expire in 20 minutes to keep your account secure.

PS C:\> ([regex]'\d{6}').Match((Get-Clipboard)).Value
351370

编辑:抱歉,我至少应该解释一下。当使用正则表达式搜索和匹配字符串中的特定模式时,您可以使用.Match如果你想要你的图案第一次出现或者.Matches找到所有的出现。例子:

PS C:\> $re=[regex]"\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b"

PS C:\> $re.match('string string string string string 
string string string 127.0.0.1 string string 
string 192.168.1.1 string string string string 
string string string 255.255.255.0 string string 
string string string string string string ').value

127.0.0.1

PS C:\> $re.matches('string string string string string 
string string string 127.0.0.1 string string 
string 192.168.1.1 string string string string 
string string string 255.255.255.0 string string 
string string string string string string ').value

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

使用 PowerShell 从文本段落中提取 6 位数字字符串会产生空白数据 的相关文章

随机推荐

  • 为什么分配大块内存会失败,而重新分配小块内存却不会失败

    这段代码的结果是x指向一块大小为 100GB 的内存 include
  • 无法向引导服务器注册 com.XXXXX.deviceapp

    我在设备中运行时遇到此错误 请确实需要全面的帮助来解决此问题 无法向引导服务器注册 com XXXXX deviceapp 错误 未知错误代码 这通常意味着该进程的另一个实例已经在运行或挂在调试器中 程序收到信号 SIGABRT 我就遇到过
  • ASP.NET、SQL 2005“分页”

    这是该问题的后续 用于在表单中显示单行的 ASP NET 下一个 上一个按钮 https stackoverflow com questions 1014526 asp net next previous buttons to displa
  • 单击其他 div 时切换类中的单个元素 Jquery

    我正在尝试为 WordPress 构建设置一个简单的评论切换 CSS div class commenttoggle p class popcom Show Comments p Clickable Button div div class
  • 旋转UIImage自定义角度

    我想以自定义角度旋转 UIImage 不是 UIImageView 我跟着这个帖子 https stackoverflow com questions 917713 uiimage rotation custom degrees但这对我不起
  • SSIS 脚本任务在服务器上失败,并出现错误“无法加载脚本以执行”

    我有 3 个带有脚本任务的 SSIS 包 它们都执行非常相似的操作 查询 SQL Server 数据库 循环遍历结果 然后为每一行调用 SOAP Web 服务 这些包在本地运行良好 并且在开发和 QA 服务器上运行良好 在生产服务器上 1
  • Rails - 将模块包含到控制器中,以在视图中使用

    我对 Rails 很陌生 我尝试设置一个要在视图中使用的模块文件 所以我相信正确的行为是将模块定义为控制器中的助手 瞧 它应该可以工作 然而 对我来说情况并非如此 这是结构 lib functions form manager rb 表单管
  • 如何使用哈希表在最小堆上实现 O(1) 删除

    在某处阅读以下声明 可以使用附加的哈希表来快速删除 最小堆 问题 gt 如何组合priority queue and unordered map这样我就可以实现上面的想法了 include
  • 在 Mathematica 中使用 f@expr 和 expr // f 得到不同的结果

    我正在玩Prefix and Postfix运算符 and 分别 我遇到了以下问题 给定以下代码 它们以完全相同的方式进行评估 Hold MatrixPlot Sort data FullForm Hold MatrixPlot Sort
  • Java心跳设计

    我需要在我的 Java 项目上实现一个心跳系统 3 5 个客户端和 1 个服务器 但我有一些问题 1 客户端需要有 2 个套接字吗 1 用于心跳 1 用于接收我的软件的正常消息 2 我看到在特定情况下 当客户端滞后时 客户端不会收到消息 如
  • angular.js 的智能感知在 javascript 文件中不起作用

    我使用的是 Visual Studio 2013 它支持 Angular js 的 Intellisense 当我在 HTML5 文件的脚本标记内创建 Angular js 模块时 Intellisense 确实可以工作 但是 当我尝试在
  • emacs 的最佳 java 工具 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 无法向 kafka 主题发送消息

    我正在使用 Kafka Play 以及 Scala 这是我的代码 我想在其中发送消息到kafka服务器 主题名称是 测试主题 尽管我没有在主题中看到我发送的消息 但我没有收到任何错误 这里有什么问题吗 import kafka produc
  • Spark - java.lang.OutOfMemoryError:请求的数组大小超出 VM 限制

    我正在尝试对 Cloudera 的 Spark 2 1 0 中的数据帧进行 groupBy 操作 该集群位于总 RAM 约为 512GB 的 7 节点集群上 我的代码如下 ndf ndf repartition 20000 by user
  • Redis SYNC 套接字上的错误情况:连接被拒绝

    在我的 django 应用程序中使用 celery 和 redis 一切都工作正常 直到我遇到了问题 redis 文件的位置已更改 redis 无法访问它们 经过查找 原来这是由于网络随机攻击造成的 需要添加confg 我添加文件后 一段时
  • pyqt5调用url时处于无响应状态

    我刚刚在 pyqt 中实现了登录 但在调用 url 和获取响应之间 qt 窗口显示无响应状态 谁能建议我如何避免不响应状态 code class Login QDialog def init self height width parent
  • Selenium Webdriver sessionId 或检查所有浏览器窗口是否已关闭

    有没有办法查看所有浏览器窗口是否都已关闭 我发现如果您在 WebDriver 上调用 driver quit 或 driver close 则 sessionId 变为 null 有办法检查吗 我不想调用已关闭或退出的驱动程序 因为它会引发
  • JavaScript 闭包与匿名函数

    我和我的一个朋友目前正在讨论 JS 中什么是闭包 什么不是 我们只是想确保我们真正正确地理解它 我们以这个例子为例 我们有一个计数循环 想要在控制台上延迟打印计数器变量 因此我们使用setTimeout and closures捕获计数器变
  • 主键删除需要多长时间?

    画一个简单的表结构 Table1 Table2 ID lt ID Name gt Table1ID Name Table1有几百万行 例如 350 万行 我通过主键发出删除 DELETE FROM Table1 WHERE ID 100 中
  • 使用 PowerShell 从文本段落中提取 6 位数字字符串会产生空白数据

    尝试使用 PowerShell 从一段文本中提取 6 位数字字符串 但它仅在一种情况下有效 6 位数字字符串位于 Windows 剪贴板中的一段文本内 在我的代码中 我期望变量 Matches 0 是我要查找的 6 位数字 但结果始终为空