可能重复:
在 CSV 中搜索值
我创建了一个 perl 脚本。假设我想在包含 äbcd 的 CSV 文件中搜索“abc”。我编写的脚本将 abcd 显示为实际上我不想要的输出,任何人都可以帮助解决这个问题。
可能重复:
在 CSV 中搜索值
我创建了一个 perl 脚本。假设我想在包含 äbcd 的 CSV 文件中搜索“abc”。我编写的脚本将 abcd 显示为实际上我不想要的输出,任何人都可以帮助解决这个问题。
问题是在 unicode 文件中搜索 ANSI 字符串。我认为您可以通过查看此正则表达式教程来最好地回答您的问题,该教程指出了一个类似于您的示例。
我猜你需要在 perl 中匹配确切的单词:
在 perl 中使用以下正则表达式:
(/\b"your_word"\b/
测试:
没有 \b
> echo 'abcd'|perl -lne 'if(/abc/){print}'
abcd
与 \b
> echo 'abcd' | perl -lne 'if(/\babc\b/){print}'
>
> echo 'abc' | perl -lne 'if(/\babc\b/){print}'
abc
通过查看您的代码,您正在执行此操作:
(grep /$curr/, @nodes)
所以将其更改为 :
(grep /\b$curr\b/, @nodes)
应该可以