2013-06-30 35 views
1

您好我有一個XAML字符串是這樣的:在XAML字符串刪除多個內容

<InlineUIContainer> 
    <HyperlinkButton Style="{StaticResource Link}" NavigateUri="someuri"> 
    <Span> 
     <InlineUIContainer> 
     <HyperlinkButton Style="{StaticResource Link}" NavigateUri="someuri">SOME TEXT</HyperlinkButton> 
     </InlineUIContainer> 
    </Span> 
    some undesirable text! 
    </HyperlinkButton> 
</InlineUIContainer> 

我需要這個XAML轉換爲RichTextBlock內容,但我有沒有串產生的控制我只接收字符串,所以你可以在片段中看到我需要刪除不需要的文本,因爲HyperLinkBut​​ton不能有兩個內容。

所以我需要一兩件事情:

  1. 取出outter HyperLinkBut​​ton這是沒有必要或
  2. 樣本中刪除不需要的文本

有人能幫助我的正則表達式或者什麼來達到這個目的?

謝謝!

回答

0

雖然可能不是最好的解決方案,因爲正則表達式很容易被許多邊界情況絆倒。這個表達式會發現不希望的文字和取代它

正則表達式:$1

enter image description here

現場工作示例:http://regexr.com?35efl

S採用(<\/Span>[\s\r\n]*)(^.*[\r\n]*)(?=\s*<\/HyperlinkButton>[\s\r\n]*<\/InlineUIContainer>)

更換充足的文本

<InlineUIContainer> 
    <HyperlinkButton Style="{StaticResource Link}" NavigateUri="someuri"> 
    <Span> 
     <InlineUIContainer> 
     <HyperlinkButton Style="{StaticResource Link}" NavigateUri="someuri">SOME TEXT</HyperlinkButton> 
     </InlineUIContainer> 
    </Span> 
    some undesirable text! 
    with multiple 
    lines 
    </HyperlinkButton> 
</InlineUIContainer> 

更換後

<InlineUIContainer> 
    <HyperlinkButton Style="{StaticResource Link}" NavigateUri="someuri"> 
    <Span> 
     <InlineUIContainer> 
     <HyperlinkButton Style="{StaticResource Link}" NavigateUri="someuri">SOME TEXT</HyperlinkButton> 
     </InlineUIContainer> 
    </Span> 
    </HyperlinkButton> 
</InlineUIContainer> 
+0

感謝嗨,但它似乎並沒有將其刪除也:(\ s不是一個有效的轉義序列:( – Keoz

+0

由於這是一個Windows平臺,您是否使用.net正則表達式引擎?你是用'S'選項觸發'.'還能匹配新的行字符嗎? –

+0

我也更新了答案來展示一個實例。 –

相關問題