正と負の値の両方に一致するPerlの正規表現

私は一致したいデータのリストを持っています:

0:1
0:3
0:-1
0:2
0:-4

私はそれらのすべてに一致するために使用できる正規表現は何ですか?

私はこれを試みたが動作しません:

$line =~ /0:(\w+)/

それはポジティブにのみ一致します。

2

2 答え

\w is for word symbols: letters, digits and underscore. That means your regexp besides 0:34 will match smth like 0:hello, but won't match minus symbol.

数字だけが必要な場合は、/0: - ?\ d +/が動作するはずです。 a0:-3b のような文字列をフィルタリングするには、/^ 0: - ?\ d + $/を使用できます。

5
追加された

$ line =〜/ 0:[ - ]?[0-9]

1
追加された
あなたが正しいです、私はコメントを追加したときにこれを実現:)
追加された 著者 daydreamer,
- の前後の [<] は無駄です。
追加された 著者 Zaid,