Sed:匹配两个字符排列的单词

时间:2015-11-20 22:12:28

标签: regex macos unix sed corpus

我正在尝试匹配语料库中所有笑话,并将它们转换为一个标准词,如“哈哈”。笑话的例子是

jaja
jjjaaja
aaajajja
ajaj

等等。我认为我需要的是一种方法来匹配任何长度的所有单词,只包含 j a ,任何顺序和数量。我已经尝试了我在答案here中找到的正则表达式,但它们都没有奏效。其中一个答案激发了我尝试这个

sed 's/ a*j*a*j*[ja]* / haha /g' 

将语料库中的一半单词转换为“哈哈”。我已经搞乱了这个命令一段时间并尝试不同的东西,但我似乎无法得到它。所以我非常感谢你的帮助。

BTW我正在使用OSX El Captain。

1 个答案:

答案 0 :(得分:0)

您可以使用此sed命令:

sed 's/\b[ja]\+\b/haha/g' file
haha
haha
haha
haha

但请注意,这会命令aj的任意组合。