我如何从文本框中解析/获取仅为字母的单词
本文关键字:获取 单词 文本 | 更新日期: 2023-09-27 18:20:55
这是我在form1
按钮事件中的代码:
StringBuilder sb = new StringBuilder();
var words = Regex.Split(textBox1.Text, @"(?=(?<=[^'s])'s+)");
foreach (string word in words)
{
ScrambleTextBoxText scrmbltb = new ScrambleTextBoxText(word.Trim());
scrmbltb.GetText();
sb.Append(word.Replace(word.Trim(), scrmbltb.scrambledWord));
}
textBox2.AppendText(sb.ToString());
我从textBox1
得到了我想要的所有单词,但有些单词也是符号,比如----
、?
、/
或'n'r
我只想解析/获取用字母构建的单词。
如何过滤?
我试着这样做:
StringBuilder sb = new StringBuilder();
var words = Regex.Split(textBox1.Text, @"(?=(?<=[^'s])'s+''w+)".Cast<Match>().Select(match => match.Value));
var matches = Regex.Matches(textBox1.Text, "''w+").Cast<Match>().Select(match => match.Value);
foreach (string word in words)
{
ScrambleTextBoxText scrmbltb = new ScrambleTextBoxText(word.Trim());
scrmbltb.GetText();
sb.Append(word.Replace(word.Trim(), scrmbltb.scrambledWord));
}
textBox2.AppendText(sb.ToString());
我需要var单词,因为Regex.Split在复制textBox1和textBox2之间的空格方面对我很有用。所以我尝试添加"''w+"和.Cast().Select(match=>match.Value因此,它将在变量词中出现,但我现在在变量词上出现错误:
错误1"System.Text.RegularExpressions.Regex.Split(string,int)"的最佳重载方法匹配包含一些无效参数
和
错误2参数2:无法从"System.Collections.Generic.IEnumerable"转换为"int"
我该怎么解决?
我现在试过了,但没用:
var words = Regex.Matches(textBox1.Text, @"(?=(?<=[^'s])'s+''w+)").Cast<Match>().Select(match => match.Value);
我现在一句话也说不出来了。
试试这个:
var matches = Regex.Matches(textBox1.Text, "''w+").Cast<Match>().Select(match => match.Value);
应该给你所有没有空字符串的单词。
全码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var matches = Regex.Matches("Line 1 this is any random text. 'r'n Line 2 Another Line?! 'r'n Line 3 End of text. ", "''w+").Cast<Match>().Select(match => match.Value);
foreach (string sWord in matches)
{
Console.WriteLine(sWord);
}
}
}
}
如果你想用Regex做这件事,特别是只想要字母,你可以这样做(匹配而不是拆分):
var words = Regex.Matches(Test, @"[a-zA-Z]+");"
你可能想要"['w]+"
,因为我怀疑你想要的是一些字符/数字。