元素,我想從一個包含字符串中的表達式元素。C#正則表達式進去表達
例如:獲得從表達元件,其中表達式是
@@Expr[propAge>10?'ignore>':'ignore?']
和表達式是
@@Expr[PropSex='M'?'ignore>']"
在這種情況下,我感興趣的由上述獲得兩個字符串數組串
array1 = ["propAge",">","'ignore>'","'ignore?'"]
array2 = ["propSex","=","'M'","'ignore>'"]
元素,我想從一個包含字符串中的表達式元素。C#正則表達式進去表達
例如:獲得從表達元件,其中表達式是
@@Expr[propAge>10?'ignore>':'ignore?']
和表達式是
@@Expr[PropSex='M'?'ignore>']"
在這種情況下,我感興趣的由上述獲得兩個字符串數組串
array1 = ["propAge",">","'ignore>'","'ignore?'"]
array2 = ["propSex","=","'M'","'ignore>'"]
通常寫作只用正則表達式解析器是一個壞主意,因爲你試圖區分在不同環境下相似的令牌時遇到各種有趣的問題。而且,只有兩個樣本往往不足以寫出一個好的正則表達式。
話雖這麼說,你的情況,你也許可以使用類似以下內容:
(?xi) # turn on comments mode and case-insensitivity
'[^']+' # strings like 'ignore?'
|
(?<=\[.*) # ensure that there's an opening square bracket to the left
# to not match the @@Expr part
[a-z]+ # matches e.g. propAge
|
[<>=] # operators
它使用了大量的交替來表達的不同部分匹配。
我不能完全肯定,但我認爲這個問題完全被破壞的編輯。我認爲*「例如爲:」 *後的文本最初被認爲是爲了得到結果要分析的源字符串? – grek40
你應該**首先嚐試**的東西。 – tchelidze