C# 如何从列表中删除所有非字母数字单词<;字符串>;

C# 如何从列表中删除所有非字母数字单词<;字符串>;,c#,regex,C#,Regex,如何从字符串列表(list)中删除所有非字母数字单词 我找到了这个正则表达式!word.match(/^[:alpha:]+$/)但是在C#中,如何获得只包含纯字母数字字符串的新列表?您可以使用LINQ进行此操作。假设您的字符串中有一个列表(或数组或其他内容): var theNewList = theList.Where(item => item.All(ch => char.IsLetterOrDigit(ch))); 如果需要,在末尾添加一个.ToList()或.ToArra

如何从字符串列表(
list
)中删除所有非字母数字单词


我找到了这个正则表达式
!word.match(/^[:alpha:]+$/)
但是在C#中,如何获得只包含纯字母数字字符串的新列表?

您可以使用LINQ进行此操作。假设您的字符串中有一个
列表(或数组或其他内容):

var theNewList = theList.Where(item => item.All(ch => char.IsLetterOrDigit(ch)));

如果需要,在末尾添加一个
.ToList()
.ToArray()
。这是因为
String
类实现了
IEnumerable

有一个静态帮助函数,可以从列表中删除所有非字母数字字符串:

    public static List<string> RemoveAllNonAlphanumeric(List<string> Input)
    {
        var TempList = new List<string>();
        foreach (var CurrentString in Input)
        {
            if (Regex.IsMatch(CurrentString, "^[a-zA-Z0-9]+$"))
            {
                TempList.Add(CurrentString);
            }
        }
        return TempList;
    }
publicstaticlist-RemoveAllNonAlphanumeric(列表输入)
{
var templast=新列表();
foreach(输入中的var CurrentString)
{
if(Regex.IsMatch(CurrentString,“^[a-zA-Z0-9]+$”)
{
添加(当前字符串);
}
}
返回圣殿骑士;
}

使用LINQ+regex,您可以使用:

list = list.Where(s => Regex.IsMatch(s, "^[\\p{L}0-9]*$")).ToList();
^[\\p{L}0-9]*$
可以识别Unicode字母数字字符。如果只想使用ASCII,
^[a-zA-Z0-9]*$
也可以

Regex rgx=新的Regex(“^[a-zA-Z0-9]*$”;
  Regex rgx = new Regex("^[a-zA-Z0-9]*$");
  List<string> list = new List<string>() { "aa", "a", "kzozd__" ,"4edz45","5546","4545asas"};
  List<string> list1 = new List<string>();
  foreach (var item in list)
  {
     if (rgx.Match(item).Success)
     list1.Add(item);
  }
List List=new List(){“aa”、“a”、“kzozd_uuu”、“4edz45”、“5546”、“4545asas”}; List list1=新列表(); foreach(列表中的变量项) { if(rgx.Match(item.Success) 清单1.添加(项目); }
如果是c#那么使用linq
list.Where(x=>Regex.IsMatch(x,@“^[a-zA-Z0-9]$”)。ToList()是否要从所有字符串中删除所有非字母数字字符?或者您想要一个只包含纯字母数字字符串的新列表?我想要一个只包含纯字母数字字符串的新列表alphanumeric@M.kazemAkhgary它不应该是
list.Where(x=>Regex.IsMatch(x,@“[a-zA-Z0-9]*”)).ToList()?@Thomas哦,是的。我忘了。模式应该是
^[a-zA-Z0-9]*$
实际上,
[[:alpha:]]
类只匹配字母,因此必须使用
Char.isleter()。然而,这可能是OP正则表达式的问题:)OP表示字母数字。因此,
Char.isleterOrdigit
正确。OP需要字母数字字符串,我假设这包括数字。问题中的正则表达式只是他在别处找到的一个示例。您的代码将返回至少包含一个字母数字字符的所有字符串