2017-03-13 12 views
1

友達。正規表現:含まれていない単語/数字を選択Comma

$item_id = 5869,

$item_id = 3456

私はカンマが含まれていないものを見つけたい、など:私は続いてコンマ数とし、コンマのない文の2種類があります3456のようなものです。

私は正規表現をしたが、誰も私を少しを助けることができるそれが(\$item_id \=\s)\d+(?:)[^,]

非常に良いではありませんか?

+0

セミコロンです;) – mayersdesign

+3

アンカーを使用してください: '^ \ $ item_id \ s * = \ s * \ d + $' –

+0

はい、セミコロンで、カンマです。 Wiktor、私はあなたの正規表現を試して、動作しません。 –

答えて

1

を行開始と$は行末と一致し、*は0+のスペースと一致します。注:私は\sを使用していないので、行間で一致しないようにしています。

あなたがライン上に複数回発生する可能性がストリングのような$item_id=123を一致させたい場合は、ここで

\$item_id *= *\d++(?!,) 

または

\$item_id *= *\d+\b(?!,) 

を使用することができ、\d++(?!,)はpossessively 1+桁と一致してます(?!,)最後の桁の後にカンマがある場合、否定ルックアヘッドは完全一致に失敗します。 \d+\b(?!,)も同様の方法で動作しますが、\b - 単語境界 - 最後の桁が\d+と一致した後に、単語以外の文字または文字列の末尾が必要です。

+0

しかし、文字列には 'item_id'はありません。 '_id'部分はオプションですか?静的とは何ですか?そして、あなたは一致させる必要がある文字列の中で何が動的ですか? –

+0

"nu"、ルーマニア語のように "いいえ"? :)それで、あなたは何を一致させる必要がありますか? –

+0

ええ、私は参照してください:)申し訳ありません。 –

0

このしようとし、最後に$を追加し、部分一致を避けるために:^が一致し、あなたのデータは別々の行にある場合、あなたはここで

^\$item_id *= *\d+$ 

を使用することができ

^[0-9]*$