如何在 Perl 中使用 grep 检查字符串是不是存在 [重复]
Posted
技术标签:
【中文标题】如何在 Perl 中使用 grep 检查字符串是不是存在 [重复]【英文标题】:How to check string is present or not using grep in Perl [duplicate]如何在 Perl 中使用 grep 检查字符串是否存在 [重复] 【发布时间】:2020-01-05 08:30:00 【问题描述】:我需要在 if 条件下使用 grep 来查找字符串中是否存在值。我尝试了一些代码,但这是不正确的
这适用于运行 Perl 的窗口。
$string ="This is a test string";
$val ="test";
if( grep /$val/i, $string)
print "found";
else
print "not found";
我希望找到输出
【问题讨论】:
我需要使用 grep 而不是索引来查找它 你为什么特别想使用grep
来达到这个目的?
@GMB 因为我需要检查具有多个值的字符串。我会简单点,假设我有一个数组 @val=("demo","test","gone"); .所以我需要检查字符串中是否存在这些值,还需要知道它与哪个值匹配。
【参考方案1】:
grep 在过滤列表时很有用。字符串不是 Perl 中的列表,您应该只是匹配项或 index。
if (-1 != index $string, $val)
或
if ($string =~ /$val/i)
您的语法错误。将if
与else
一起使用时,大括号不是可选的。
if (grep /$val/i, $string)
print "found";
else
print "not found";
【讨论】:
如果我有多个字符串值要匹配怎么办。例如,$val 是一个数组。如何检查数组值是否与字符串匹配 @Sahal,这就是 grep 有用的地方。 @ikegami 你能展示一些演示代码吗? @Sahal,根据documentation,其中一种用法是grep EXPR, LIST
,而“LIST
”表示“在列表上下文中返回零个或多个标量的表达式”。 @a
就是这样的表达方式。以上是关于如何在 Perl 中使用 grep 检查字符串是不是存在 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Perl 中使用 POE::Component::IRC::State 检查用户是不是通过 NickServ 的身份验证?