[实例]UWP之正则获取文本中的超链接到剪切板并粘贴

前端之家收集整理的这篇文章主要介绍了[实例]UWP之正则获取文本中的超链接到剪切板并粘贴前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

MainPage.xaml中

  1. <StackPanel Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
  2. <TextBlock Height="200" TextWrapping="Wrap" Loaded="TextBlock_Loaded" Tapped="TextBlock_Tapped">
  3. dsdsdsdsadsadddsdsdsdhttp://www.baidu.com dsadsadsadsahttps://www.baidu.com1 daewqewqeqwewqdaewq
  4. dsdsdsdsadsadddsdsdsdhttp://www.baidu.com6 dsadsadsadsahttps://www.baidu.com2 daewqewqeqwewqdaewq
  5. dsdsdsdsadsadddsdsdsdhttp://www.baidu.com7 dsadsadsadsahttps://www.baidu.com3 daewqewqeqwewqdaewq
  6. dsdsdsdsadsadddsdsdsdhttp://www.baidu.com8 dsadsadsadsahttps://www.baidu.com4 daewqewqeqwewqdaewq
  7. dsdsdsdsadsadddsdsdsdhttp://www.baidu.com9 dsadsadsadsahttps://www.baidu.com5 daewqewqeqwewqdaewq
  8. <FlyoutBase.AttachedFlyout>
  9. <Flyout x:Name="HyperText" Placement="Full">
  10. <StackPanel>
  11. <ListView Name="ttt" SelectionChanged="ttt_SelectionChanged"/>
  12. </StackPanel>
  13. </Flyout>
  14. </FlyoutBase.AttachedFlyout>
  15. </TextBlock>
  16.  
  17. <StackPanel Orientation="Horizontal">
  18. <Button Content="粘贴超链接" Click="Button_Click" />
  19. <TextBox Name="hhh"/>
  20. </StackPanel>
  21.  
  22. </StackPanel>

MainPage.cs中

  1. using System.Text.RegularExpressions;
  2. using Windows.ApplicationModel.DataTransfer;
  3. private void TextBlock_Loaded(object sender,RoutedEventArgs e)
  4. {
  5. string str = ((TextBlock)sender).Text.ToString().ToLower();
  6. string pattern = @"https?://[^\s]+\s";
  7. MatchCollection mc = Regex.Matches(str,pattern);
  8.  
  9. if(mc.Count > 0)
  10. {
  11. ttt.Items.Clear();
  12. foreach (Match t in mc)
  13. {
  14. ttt.Items.Add(t.Value.ToString().Trim());
  15. }
  16. }
  17.  
  18. }
  19.  
  20.  
  21.  
  22. private void ttt_SelectionChanged(object sender,SelectionChangedEventArgs e)
  23. {
  24. var ddd = (ListView)sender;
  25. DataPackage dp = new DataPackage();
  26. dp.SetText(ddd.SelectedItem.ToString());
  27. Clipboard.SetContent(dp);
  28. HyperText.Hide();
  29. }
  30.  
  31. private void TextBlock_Tapped(object sender,TappedRoutedEventArgs e)
  32. {
  33. var fff = (TextBlock)sender;
  34. FlyoutBase.ShowAttachedFlyout(fff);
  35. }
  36.  
  37. private async void Button_Click(object sender,RoutedEventArgs e)
  38. {
  39. DataPackageView con = Clipboard.GetContent();
  40. if (con.Contains(StandardDataFormats.Text))
  41. {
  42. hhh.Text = await con.GetTextAsync();
  43. }
  44. }



实现的效果如下:


知识链接win10 UWP 剪贴板 Clipboard

猜你在找的正则表达式相关文章