我希望获得大于1个空格的空白区域。
以下内容为我提供了每个字母之间的空字符,以及白色空格。但是,我只想提取c
和d
之间的两个空格字符串,以及f
和g
之间的3个空格字符串。
string b = "ab c def gh";
List<string> c = Regex.Split(b, @"[^\s]").ToList();
更新: 以下是有效的,但我正在寻找一种更优雅的方法来实现这一目标:
c.RemoveAll(x => x == "" || x == " ");
所需的结果是List<string>
包含" "
和" "
答案 0 :(得分:5)
如果您希望<form action='form.php' method='get'>
<input type='text' name='user' value=''><br>
<input type='number' name='age' value=''><br>
<input type='radio' name='user' value='male'>
<input type='radio' name='user' value='female'><br>
<input type='submit' value='Submit'>
</form>
作为结果,则可以执行此 Linq 查询
List<String>
答案 1 :(得分:3)
这应该会为您提供所需的清单。
string b = "ab c def gh";
var regex = new Regex(@"\s\s+");
var result = new List<string>();
foreach (Match m in regex.Matches(b))
result.Add(m.Value);
答案 2 :(得分:2)
不要使用正则表达式进行拆分,而是尝试使用Regex.Matches
来获取与您的模式匹配的所有项目 - 在这种情况下,我使用了一个模式来匹配两个或更多的空白字符,我认为这就是您想要的?
var matchValues = Regex.Matches("ab c def gh", "\\s\\s+")
.OfType<Match>().Select(m => m.Value).ToList();
令人讨厌的是,MatchCollection
返回的Regex.Matches
不是IEnumerable<Match>
,因此需要在LINQ表达式中使用OfType<>
。
答案 3 :(得分:2)
如果你感兴趣的是这些空格组,你可以使用
foreach(var match in Regex.Matches(b, @"\s\s+")) {
// ... do something with match
}
这可以保证您至少匹配2个空格。
答案 4 :(得分:1)
您可以使用以下单行:
var list =Regex.Matches(value,@"[ ]{2,}").Cast<Match>().Select(match => match.Value).ToList();
希望它会对你有所帮助。