【发布时间】:2014-07-07 09:57:26
【问题描述】:
我有一个文件“dic.txt”,我需要搜索所有不包含元音的单词。
$dic = gc "dic.txt"
$v = @("aeiou")
foreach ($line in $dic){$line | ?{$_ -notcontains $v}}
但它不起作用。
【问题讨论】:
标签: regex powershell
我有一个文件“dic.txt”,我需要搜索所有不包含元音的单词。
$dic = gc "dic.txt"
$v = @("aeiou")
foreach ($line in $dic){$line | ?{$_ -notcontains $v}}
但它不起作用。
【问题讨论】:
标签: regex powershell
试试这个:
$dic = gc "dic.txt"
foreach ($line in $dic)
{
$line | ? { $_ -notmatch 'a|e|i|o|u' }
}
【讨论】:
如果每行有一个单词,如下所示:
Select-String '(?i)^(?:(?![aeiou])[a-z-])+$' 'dic.txt'
说明
(?i) 使其不区分大小写 ^ 锚断言我们位于字符串的开头(?:(?![aeiou])[a-z]) 匹配一个不是a、e、i、o 或u 的字母
+ 重复一次或多次$ 锚断言我们在字符串的末尾【讨论】:
spy-story 这样的“组合词”的情况下,它会失败。
spy,因为它没有元音?你是对的,你也是对的,也许这正是 expirat001 想要的,也许不是。让我们知道,expirat0001。 :)
spy-story 并且它有元音 o ...尝试一下小测试,你就会明白我的意思..
story 不匹配,为什么会这样?见demo
grep,它返回如果找到匹配项的整行,spy 是匹配项。假设我们每行有一个单词,更改正则表达式,使单词完全锚定。很好的收获,谢谢。 :)