2017-09-15 6 views
1

を使用して線または何ものマッチ開始:私は設定ファイルに次のようしている正規表現

property = 10 
#property = 10 
#this is a test for #property 
#this is a test for property 

そして、私は最初の2例に一致するように正規表現を思い付くしようとしている:

#property.*|^property.* 

そして、これが結果です::

property = 10 //this one 
#property = 10 //and this one 
#this is a test for #property 
#this is a test for property 

これまでのところ、私がやったことだった

enter image description here

私は他の変形を試してみましたが、最悪の結果の変更:

^#property.*|^property.* 
[^\s]#property.*|^property.* 

はここで私が使用しているオンライン正規表現のリンクです:

https://regex101.com/r/K2tm75/2

私はgrepコマンドでこの正規表現をbashスクリプトの一部として使用します。

+0

regexにタグを付けるかどうかを尋ねる推奨がありました。言語にもタグを付ける方が良いでしょう。 –

答えて

2

文字列の先頭に#propertyまたはpropertyと一致することを確認する必要があります。

私は

^#?property.* 

または示唆 - だけで終わりに=と数字でそれらを一致させるには:

^#?property *= *[0-9]+$ 

regex demo 1regex demo 2を参照してください。

^#?property.*入力の開始と一致し、任意##?マッチ1または0の出現、次いでproperty及び任意0+文字)。

第二のパターン - ^#?property *= *[0-9]+$ - は同様の先頭と一致し、しかし、property後、ゼロ以上のスペース、=、ゼロ以上のスペース、次いで1+桁($有する)文字列の末尾に一致します。

+0

'^#* property'も' ## property'にマッチします(より良いか悪いのか?)。 –

+1

@JamesBrown: '*'量子は、定量化されたサブパターンの0回以上の一致と一致します。 '#### property text ... 'が一致するかどうかわかりません。 yesの場合はyes、 '* 'はここで使用するより良い量指定子です。 –

+0

@WiktorStribiżewあなたの答えは、私が/ gmについて気づいたところです。そのスイッチで完璧に動作しました。 –

関連する問題