【问题标题】: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"); .所以我需要检查字符串中是否存在这些值,还需要知道它与哪个值匹配。

标签: perl


【解决方案1】:

grep 在过滤列表时很有用。字符串不是 Perl 中的列表,您应该只是匹配项或 index

if (-1 != index $string, $val) {

if ($string =~ /$val/i) {

您的语法错误。将ifelse 一起使用时,大括号不是可选的。

if (grep /$val/i, $string) {
    print "found";
} else {
    print "not found";
}

【讨论】:

  • 如果我有多个字符串值要匹配怎么办。例如,$val 是一个数组。如何检查数组值是否与字符串匹配
  • @Sahal,这就是 grep 有用的地方。
  • @ikegami 你能展示一些演示代码吗?
  • @Sahal,根据documentation,其中一种用法是grep EXPR, LIST,而“LIST”表示“在列表上下文中返回零个或多个标量的表达式”。 @a就是这样的表达方式。
猜你喜欢
  • 1970-01-01
  • 2020-03-02
  • 2013-07-23
  • 1970-01-01
  • 2020-01-05
  • 2018-10-17
  • 2019-04-07
  • 1970-01-01
  • 2016-11-21
相关资源
最近更新 更多