шаблон регулярного выражения powershell - PullRequest
0 голосов
/ 21 ноября 2018

Я получаю разные результаты.

В Powershell, используя:

$Matches = Select-String -InputObject (Get-Content "StevenBlackhosts-urls.txt") `
             -Pattern "(^|\.)ad[sxvkdz]\-" -AllMatches                                          #`
$Matches.Matches.Count

Я получаю 12 совпадений, и это неверно.

В Notepad ++ найдите и сосчитайте

"(^|\.)ad[sxvkdz]\-"

У меня 62 совпадения, и это правильно.

Я не знаю, что не так?текст "StevenBlackhosts-urls.txt" содержит 65106 строк ...

  • zeus.ad.intl.xiaomi.com
  • api.ad.intl.xiaomi.com
  • sdkconfig.ad.intl.xiaomi.com
  • adv.sec.intl.miui.com
  • zeus.ad.xiaomi.com
  • www.api.ad.intl.xiaomi.com
  • ampmetrics.engadget.com
  • c.adskeeper.co.uk
  • events3.adcolony.com
  • метрики.adage.com
  • ads.feedly.com
  • lepodownload.mediatek.com
  • ads.aerserv.com
  • ads.mp.mydas.mobi
  • ads.nexage.com
  • sdk.adincube.com
  • dasdada.fu.ck
  • i1.dl-ad.com
  • ad.api.kaffnet.com
  • ad.click.kaffnet.com
  • api.ad.snappea.com
  • и т. Д.

тестирование таким образом, если я получаю тот же результат в Notepaq ++;Почему это происходит ??

$Matches = Select-String -InputObject (Get-Content "StevenBlackhosts-urls.txt") -Pattern "( |\.)ad[sxvkdz]\-" -AllMatches
$Matches.Matches.Count

Это так же хорошо работает, давая мне 62 строки

Get-Content "StevenBlackhosts-urls.txt" | Select-String -Pattern "(^|\.)ad[sxvkdz]\-" -AllMatches | set-content "test.txt"

1 Ответ

0 голосов
/ 22 ноября 2018
Get-Content "StevenBlackhosts-urls.txt" | Select-String -Pattern "(^|\.)ad[sxvkdz]\-" -AllMatches | Measure-Object –Line | Select-Object -ExpandProperty Lines

это работает правильно для меня .. спасибо всем за ваши предложения.,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...