c# - 如何让文本框在某个文本之间打印一个变量?
问题描述
例如,我需要richTextBox2 来打印richTextBox1 中“AaBb”和“CcDd”之间的任何内容。
if (richTextBox1.Text.Contains ("AaBb x CcDd"))
//print whatever is x in richTextBox2
编辑:我忘了提及我正在尝试做的事情。我正在尝试抓取一个网站并在richTextBox 中打印值(例如欧元到美元)。到目前为止,这是我的代码。不幸的是,它对两个答案都不起作用。
版本 1:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Net;
using System.Windows.Forms;
namespace BitPrice
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
WebClient priceVariationDollar = new WebClient();
string dollarPrice = priceVariationDollar.DownloadString("https://www.xe.com/pt/currencyconverter/convert/?Amount=1&From=EUR&To=USD");
euroTextBox.Text = dollarPrice;
if (euroTextBox.Text.Contains("<span class=converterresult - toAmount></span>"));
{
int p1, p2;
p1 = euroTextBox.Text.IndexOf("<Span class=converterresoult - toAmount>");
p2 = euroTextBox.Text.IndexOf("</span>");
if (p2 > p1 + 4)
{
dollarTextBox.Text = euroTextBox.Text.Substring(p1 + 4, p2 - p1 - 4);
}
}
}
}
版本 2:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Net;
using System.Windows.Forms;
namespace BitPrice
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
WebClient priceVariationDollar = new WebClient();
string dollarPrice = priceVariationDollar.DownloadString("https://www.xe.com/pt/currencyconverter/convert/?Amount=1&From=EUR&To=USD");
euroTextBox.Text = dollarPrice;
if (euroTextBox.Text.Contains("<span class=converterresult - toAmount></span>"));
{
var startIndex = euroTextBox.Text.IndexOf("<span class=converterresult - toAmount>") + "<span class=converterresult - toAmount>".Length;
var endIndex = euroTextBox.Text.IndexOf("</span>");
if (startIndex >= 0 && endIndex > startIndex)
dollarTextBox.Text = euroTextBox.Text.Substring(startIndex, endIndex - startIndex);
}
}
}
对不起,如果它太长
解决方案
您需要首先检查这两个文本是否在 中richTextBox1
,然后如果它们都退出,则查看第一个是否在第二个之前,然后您取两者之间的内容。
int p1, p2;
string t1, t2;
t1 = "....."; //Your first searched text
t2 = "..."; //Your second searched text
p1 = richTextBox1.Text.IndexOf(t1);
p2 = richTextBox1.Text.IndexOf(t2);
if (p2 > p1 + t1.Length)
richTextBox2.Text1 = richTextBox1.Text.Substring(p1 + t1.Length, p2 - p1 - t1.Length);
推荐阅读
- unity3d - 场景视图的某些部分似乎没有渲染
- html - 在 Google Sheet 中使用 ImportHTML 和 XPath 获取元素
- kotlin - 从不同的流程收集时,我应该从协程中发出吗?
- arrays - C如何从多个函数返回数组?
- python - 为什么全局变量(list 和 int)的行为不一样?
- automation - 退出应用程序后,WhatsApp 自动消息不起作用并且应用程序无法工作
- javascript - Lodash Debounce 和 Apollo Client 使用LazyQuery 去抖动一次
- python - 将 HTML 页面加载到融合时出错:“TextIOWrapper”类型的对象不是 JSON 可序列化的
- c++ - linux上g++9.3.0 -O2的一个奇怪bug
- android - 在继续之前,如何确保线程已完成?