IM喜在JavaScript應用程序的工作,需要幫助搞清楚這個表達式的Javascript正則表達式難倒
我有一系列的字符串。他們是動態的,但確實有一套模式。
name eq 'abc'
id in 'def'
key | operator | value
然後我有一個修改器「具有」
has name eq 'abc'
!has id
has address eq '123 sesame street'
|modifier | key | operator | value
我能提取修飾符和按鍵沒有問題,這個表達式
new RegExp(/(^(\s*!?has\s+)?([^\s]+)|(^\s*[^\s]+))/i)
但問題來時,我有一個與修飾詞相同的鍵
has eq '123'
以上的回報正則表達式「有EQ」在那裏我只需要「有」
has has eq '123'
以上的回報適當「已經有」
有大量的運營商來處理的,但它們是一組值
任何幫助,將不勝感激
你確定一個正則表達式是一個很好的模式?爲什麼不是簡單的解析器? –
@DaveNewton我的應用程序比這裏看到的複雜得多。我還沒有找到符合我需要的東西。請提出建議!有很多我沒有看到。 –
你可以在** eq **之前用'\ w +(?= \ s + eq \ b)'來挑出位嗎?當然,如果你有'eq'作爲操作符或修飾符名稱,這會受到類似的影響。 –