Home > C# > 目的別資料 > エディタ > テキスト処理

C# WPFを使ったUIで、TextBox内のテキストを正規表現パターンを使って検索置換する

新規作成日 2018-12-12
最終更新日

コンピューターは、計算機ですが、数値の計算だけでなく、テキスト処理を行うためにも使用されます。用途によっては、テキスト処理が作業の主体となります。

そのため、テキスト処理を行うプログラムを作成することができれば、テキスト処理作業を軽減できることができます。

テキスト処理の基本は、正規表現を使用した置換の繰り返しです。

C#は、正規表現を簡単に使うことができます。そして、TextBoxやRichTextBoxのようなテキストを編集可能なコントロールを組み合わせることで、基本となる部分は、少ないコードで実装できます。

UIを持つ、正規表現パターンで置換を行うアプリケーションを作成します。

<Window x:Class="TextBox03.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="250" Width="350">
    <DockPanel>
        <DockPanel DockPanel.Dock="Top">
            <Button Name="ReplaceExe" DockPanel.Dock="Right" Width="60" Click="ReplaceExe_Click">置換</Button>
            <TextBox Name="FindPattern">検索パターン</TextBox>
        </DockPanel>
        <DockPanel DockPanel.Dock="Top">

            <TextBox Name="ReplaceText">置換文字</TextBox>
        </DockPanel>
        <TextBox 
              Name="TarrgetText"
              TextWrapping="Wrap"
              AcceptsReturn="True"
              VerticalScrollBarVisibility="Visible">置換対象文字列</TextBox>
        
    </DockPanel>
</Window>
using System;
using System.Text.RegularExpressions;
using System.Windows;

namespace TextBox03
{
    /// <summary>
    /// MainWindow.xaml の相互作用ロジック
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void ReplaceExe_Click(object sender, RoutedEventArgs e)
        {
            // 置換を実行
            String ResultText = Regex.Replace(TarrgetText.Text, FindPattern.Text, ReplaceText.Text);

            // TextBoxの文字列変更
            TarrgetText.Text = ResultText;
        }
    }
}
TextBox内のテキストを正規表現パターンで置換する

「検索パターン」と「置換文字」を指定して、「置換」ボタンを押すと、「置換対象文字列」が置換されます。

参考
このエントリーをはてなブックマークに追加

Home PC C# Illustration

Copyright (C) 2011 Horio Kazuhiko(kukekko) All Rights Reserved.
kukekko@gmail.com
ご連絡の際は、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません。」