如何檢測當前行是否有(=)符號?謝謝。如何檢測Perl中是否存在(=)當前行的符號?
$_ = $currentLine;
if (Include =)
{
# do some thing
}
else
{
# do another thing
}
如何檢測當前行是否有(=)符號?謝謝。如何檢測Perl中是否存在(=)當前行的符號?
$_ = $currentLine;
if (Include =)
{
# do some thing
}
else
{
# do another thing
}
local $_ = $currentLine;
if (/=/) {
或
if ($currentLine =~ /=/) {
my $currentLine; # presumably this has a value from something earlier
if ($currentLine =~ /=/)
{
# line has an = in it
}
else
{
# it doesn't
}
閱讀位於perldoc perlop的=~
運營商,並在perldoc perlre正則表達式。
最簡單的方法是使用index:
if (index($line, '=') > -1) {
它比一個正則表達式更快,因爲它是在C級完成,無需任何編圖。如果您正在尋找在Perl代碼,你可能不關心,如果有一個註釋行等號,所以有這樣的:
$line =~ m/^[^#]*=/;
如果不能滿足您的需求,然後使用第一。
並非所有行上的'#'字符都表示註釋。它們可能被嵌入到字符串中,或者它們可能被用作'q ##','s ###'和其他相關運算符的引號字符。因此,可能'='。 –
@Rob Kennedy:好的一點,但這不太可能是一個文字在左邊。當然,你可以分配給'$#some_array',這是一個更可能的問題。儘管如此,問題有點複雜,代碼的完整解決方案几乎需要完整的解析器。 – Axeman
提及'索引'的+1。 –
感謝您的參考鏈接。 –