[英]JS RegEx for C# “lambda syntax”
/^[a-z][ ][=][>][ ][a-z?][.?][a-z0-9]+[ ][=][ ]['?][a-z0-9]+['?]]/i
我正在嘗試弄清楚如何獲得可識別lambda語法字符串的rexex模式(用於c#)
在字符串的情況下
"p => p = 'some random string'" //Must alow for single quotes
如果是數字或布爾值
"p => p = true" /*or*/ "p => p = 25" //Must allow for a string without single quotes with no whitespace at all in the event there are no single quotes
另外,它必須允許使用單個“。”。 在“ =”符號左側選擇的字母中
"p => p.firstName = 'Jack'"
首先,只有一個基本要點:您不需要[]
圍繞所有內容 ,只需要字符類 (例如[a-zA-Z]
或[_\\$0-9]
)。
因此,讓我們按順序執行以下步驟:
([az])
([AZ])
([a-zA-Z])
。 ()
以便稍后可以在反向引用中使用它。 =>
(合並步驟2-4)就這樣: =>
。 由於這些都不是特殊字符,因此無需轉義。 ()
集合): \\1
(\\.\\w)?
然后是零個或多個字母數字字符: \\w*
=
,同樣也不需要轉義這些字符,因此我們直接將其包括在內: =
\\d+
'[^']*'
(我們使用負字符類來獲取除 '
所有字符) |
將這些作為替代連接在一起 綜合所有這些,我們得到最終的正則表達式:
/([a-zA-Z]) => \\1(\\.\\w)?\\w* = (\\d+|true|false|'[^']*')/i
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.