我開始與此正則表達式包含命名捕獲組EntityType
,EntityName
,和EntityId
:如何匹配可選令牌中的命名捕獲組?
EntityType=(?<EntityType>.+)&EntityName=(?<EntityName>.+)&EntityId=(?<EntityId>[\w-]+)
每組針對該文本相匹配(注意在第二實施例&符):
EntityType=FundingRnd&EntityName=ABC&EntityId=df78abcd-fb75-473d-a4bb-412a9d89215c
EntityType=FundingRnd&EntityName=ABC & XYZ&EntityId=df78abcd-fb75-473d-a4bb-412a9d89215c
然後我發現最後的EntityId
部分必須是可選的,所以我用(
和)?
包裝了正則表達式的EntityId部分:
EntityType=(?<EntityType>.+)&EntityName=(?<EntityName>.+)(&EntityId=(?<EntityId>[\w-]+))?
現在EntityId
組不再匹配相同的文本。
我正在使用帶有「忽略大小寫」開關的.NET Framework正則表達式引擎。測試工具是this one,它使用.NET引擎。
任何想法?目的是從這些組中提取文本。
試'的EntityType =&實體名稱=( [^&] +)(&ENTITYID =( [\ W - ] +) )?'看到它在這裏:http://regex101.com/r/kI4tV3/1 –
2014-10-30 02:46:52
@JorgeCampos道歉,我沒有舉一個很好的例子。問題是EntityName的值可能包含&符號。 – 2014-10-30 02:53:46
哼,現在這是一個問題...看看我能想出來... – 2014-10-30 02:55:27