こんにちは私はこの正規表現を理解する助けが必要ですJavascript Regex Stumped
私は一連の文字列を持っています。彼らは動的ですが、設定されたパターンを持っています。その後、
name eq 'abc'
id in 'def'
key | operator | value
私は修飾子を持っているが、私はこの正規表現
new RegExp(/(^(\s*!?has\s+)?([^\s]+)|(^\s*[^\s]+))/i)
で修飾し、キーがない問題を抽出することができる午前
has name eq 'abc'
!has id
has address eq '123 sesame street'
|modifier | key | operator | value
「は」は問題がときに来てI修飾子と同じキーを持つ
has eq '123'
戻って上記の正規表現は、私だけ
has has eq '123'
上記のリターンが適切に処理するために、事業者の数が多い
「を持っている」しかし、彼らはセットされている「が持っている」必要「EQを持っています」
var keyval = ''
keyval += "^\s*(\w+)\s+eq\s+'(.*)'$"; // for key eq 'val'
keyval += "|^\s*has\s(\w+)\s+eq\s+'(.*)'$"; // for has key eq 'val'
new RegExp(keyval, 'i');
:値
は、任意のヘルプはあなたが完全にすべての有効な構文を指定し、特定する必要が
正規表現は、このための偉大なパターンですあなたは確か?なぜ単純なパーサーではないのですか? –
@DaveNewton私のアプリケーションは、ここに見られるよりはるかに複雑です。私は自分のニーズに合ったものを見つけられませんでした。ご提案ください!私はそこに見たことがない多くがあります。 –
'\ w +(?= \ s + eq \ b)'を使って** eq **の前にビットを選ぶことができますか?もちろん、演算子や修飾子の名前として 'eq'がある場合も同様です。 –