我已經看過不少相關的帖子,但我仍然遇到一些問題。使用正則表達式提取多個字符串
我需要刪除多個特定標記之間的值,而不用觸及其他具有相似名稱的值。例如,刪除「LastName」的值,但不刪除「Last」的值。
這裏是我的樣品測試字符串
<jv:FirstName>TEST</jv:FirstName>
<jv:MiddleInitial>TEST</jv:MiddleInitial>
<jv:LastName>TEST</jv:LastName>
<jv:EmployerName>TEST</jv:EmployerName>
<jv:LocationName>TEST</jv:LocationName>
<jv:CallerName>TEST</jv:CallerName>
<jv:Last>TEST</jv:Last>
我只是想刪除值名字,姓氏,和MiddleInitial。
這是我目前有我的正則表達式:
Regex.Replace(str, @"<(jv:[FirstName|MiddleInitial|LastName].*>).*?</\1, "<$1</$1");
這種模式的工作原理,但它也拉動了「LOCATIONNAME」和「最後」的標籤。
有什麼辦法只拉特定字符串?
爲什麼不使用XML解析器而不是正則表達式?你的理智會感謝你。 – Flimzy
'[FirstName | MiddleInitial | LastName]'看起來不正確,'[]'是一個字符集,它不使用這些單詞。然後你用'。*'跟隨它來匹配任何東西。所以它是匹配的最後,因爲你可以拼寫它與這些字符,和LocationName,因爲它擊中L. * – TessellatingHeckler