在一行中搜索两种不同的字符串模式

时间:2016-12-13 09:10:59

标签: powershell

情景

我有一个包含3行的* .txt文件:

test-1234.htm
test-5678.htm
somefile.htm

我需要一个脚本,它会在* .txt文件中找到特定的字符串模式。

目前,以下脚本将在* .txt文件中找到所有* .htm文件,并将结果存储在指定的results.log文件中。

dir *.txt | Select-String -pattern "\.htm$" |Select-Object -Expandproperty line | Out-File results.log -Encoding utf8 -Width 500

问题

如何修改它,所以它只找到所有" test - ****。htm"行呢?

(仅记录包含&#34的行;测试 - "和" .htm")

2 个答案:

答案 0 :(得分:0)

将模式参数更改为test-\d*.htm

'\ d' - “匹配任何数字字符(0-9)”

'*' - “匹配或更多前面的标记”

所以它会匹配任意数字的数字

如果您想匹配至少4位数字,可以使用test-\d{4,}.htm

我建议使用此网站使用正则表达式:http://regexr.com/

答案 1 :(得分:0)

谢谢大家的提示!

最终我得到了它:

test-.{4,}\.htm$

这样我就可以在结果行中包含数字+字符(例如“ test-a12c.htm ”)和在关键字“test”之前有某些内容的行(例如“这是 test-13bg.htm ”。

@ user1432893

您提供的网站帮助了我! THX!

@ Dave Sexton

在参数中使用^它不起作用。