c#查找和替换标记/已知单词之间的未知单词

本文关键字:单词 之间 未知 查找 替换 | 更新日期: 2023-09-27 18:11:55

我想做一个程序来替换文件中的一个词,但我不知道如何替换当这个词现在是一个未知的词
这是我在文件未修改时用于替换的代码,但是当用户更改单词/昵称并想再次更改时,我需要知道两个单词

之间的单词/昵称
string path2 = filePath + "''test''versions''"+comboBox1.Text+"''";
            string text = File.ReadAllText(path2+comboBox1.Text+".json");
            text = text.Replace("${auth_player_name}", textBox1.Text);
            File.WriteAllText(path2+comboBox1.Text+".json", text);

这是我需要替换的两个单词之间的两个单词

--username ${auth_player_name} --version

现在我尝试将未知字更改为${auth_player_name}以便用户可以再次更改它,这需要是那个字因为我的程序可以编辑其他类似但名称不同的文件

我试过了,但是不工作

text = Regex.Replace(text, "--username '".*'" --ver", "-username '"${auth_player_name}'" --ver");

所有的代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Text.RegularExpressions;
namespace ChangeName
{
    public partial class Form1 : Form
    {
        string filePath = Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData);
        public Form1()
        {
            InitializeComponent();
            DirectoryInfo dinfo = new DirectoryInfo(filePath+"''.minecraft''versions");
            FileInfo[] Files = dinfo.GetFiles("*.json", SearchOption.AllDirectories);
            foreach (FileInfo folder in Files)
                comboBox1.Items.Add(Path.GetFileNameWithoutExtension(folder.Name));
        }
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
        }
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
        }
        private void button1_Click(object sender, EventArgs e)
        {

            string path2 = filePath + "''.minecraft''versions''"+comboBox1.Text+"''";
            string text = File.ReadAllText(path2+comboBox1.Text+".json");
            text = text.Replace("${auth_player_name}", textBox1.Text);
            File.WriteAllText(path2+comboBox1.Text+".json", text);
        }

    }
}

c#查找和替换标记/已知单词之间的未知单词

正则表达式。代替示例

string path2 = filePath + "''test''versions''"+comboBox1.Text+"''";
string text = File.ReadAllText(path2+comboBox1.Text+".json");
//Changed to Regex
Regex reg = new Regex("--username ([^-]+)--version");
//using regex.replace function
text = reg.Replace(text, "--username " + textBox1.Text + " --version");
//end edit
File.WriteAllText(path2+comboBox1.Text+".json", text);

Regex的文档。替换

更新为设置文本变量等于替换