【发布时间】:2015-07-12 05:17:30
【问题描述】:
我正在尝试使用正则表达式来匹配文件中的某些行,但遇到了一些问题。
该文件包含如下文本:
Mario, 123456789
Luigi, 234-567-890
Nancy, 345 5666 77533
Bowser, 348759823745908732589
Peach, 534785
Daisy, 123-456-7890
我正在尝试将数字匹配为 XXX-XXX-XXX 或 XXX XXX XXX 模式。
我尝试了几种不同的方法,但它总是期待一些我不想要的东西,或者它告诉我一切都是错误的。
我正在使用 PowerShell 来执行此操作。
一开始我试过:
{$match = $i -match "\d{3}\-\d{3}\-\d{3}|\d{3}\ \d{3}\ \d{3}"
Write-Host $match}
但是当我这样做时,它会匹配长强的数字和XXX-XXX-XXXXX。
我读到一些东西说 n 会匹配确切的数量,所以我尝试了一下......
{$match = $i -match "\d{n3}\-\d{n3}\-\d{n3}|\d{n3}\ \d{n3}\ \{n3}"
Write-Host $match}
这让一切都是假的......
所以我尝试了
{$match = $i -match "\d\n{3}\-\d\n{3}\-\d\n{3}|\d\n{3}\ \d\n{3}\ \d\n{3}"
我也尝试了惰性量词?:
{$match = $i -match "\d{3?}\-\d{3?}\-\d{3?}|\d{3?}\ \{3?}\ \{3?}"
Write-Host $match}
还是假的……
我尝试的最后一件事是这个......
{$match = $i -match "\d[0-9\{3\}\-\d[0-9]\{3\}\-\d[0-9]{3\}|\d[0-9]\{3\}\ \d[0-9]\{3}\ \d[0-9]\{3\}"<br>
Write-Host $match}
仍然没有运气......
【问题讨论】:
标签: regex powershell