0

BSC0 ~ BSC10 と "TOTAL" を一致させる必要があります。ただし、以下の条件は BSC1 と BSC10 のみに一致します。何が足りない?s/regex/ m/regex/バリエーションも試してみました

$currentRowHeaderスペースなしの単一の単語が含まれます

if ($currentRowHeader =~ /BSC[0-10]|TOTAL/) { print "OK"}
4

2 に答える 2

8

[...]文字クラスです。1 文字のみに一致できます。正規表現には数字の概念がなく、数字の概念しかありません。あなたの正規表現が言っていることは

0からまでの文字1(0 または 1) に一致するか、 a に一致し0ます。

したがって、1 つの 2 進数にのみ一致します。あなたが使用することができます

if ($currentRowHeader =~ /BSC(?:[0-9]|10)|TOTAL/) { print "OK" }

?:は必須ではありませんが、不要なキャプチャを抑制して操作を高速化するため、良い習慣であることに注意してください。

于 2013-06-28T21:45:57.407 に答える