簡體   English   中英

Perl中不區分大小寫的GREP

[英]Case insensitive GREP in Perl

我有一個Perl腳本,它使用嚴格

use strict

我想通過不區分大小寫的比較與我有的var從數組中復制元素

my ($sPermIdIndex) = grep $aHeaderLine[$_] eq $sPermIdField/i, 0 .. $#aHeaderLine;

這行給我錯誤

Bareword "i" not allowed while "strict subs" in use

如何使其運作?

謝謝

如果在比較之前它們折疊起來,則可以不區分大小寫地比較兩件事:

fc("Foo") eq fc("fOO")

您可以使用fc折疊兩個字符串並進行比較

my ($sPermIdIndex) = grep { 
  # use v5.16; or prefix with CORE::
  CORE::fc($aHeaderLine[$_]) eq CORE::fc($sPermIdField) 
}
0 .. $#aHeaderLine;

它的工作方式與使用正則表達式$aHeaderLine[$_] =~ /^\\Q$sPermIdField\\E\\z/i

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM