我有一些字符串要找到,如下所示
\r\n1928A\r\n
\r\nabc\r\n
\r\n239\r\n
在句子中找到这些字符串的最佳方法是什么?
你可以使用这个正则表达式
\r?\n\w+\r?\n
如果\r?\n
单词之间只有 1 个……你可以使用这个正则表达式
\r?\n\w+(?=\r?\n)
\w
将匹配单个数字、字母或_
+
是与前面的模式 1 多次匹配的量词
因此,\w+
将匹配 1 到多个单词
?
将可选地匹配前面的模式..
因此,\r?
我们可以选择匹配 \r
你的代码是
List<String> lst=Regex.Matches(input,regex)
.Cast<Match>()
.Select(x.Value)
.ToList();
或者说得更清楚
foreach(Match m in Regex.Matches(input,regex))
{
m.Value;
}
假设您要匹配的单词始终介于两个 之间\r\n
,您可能希望使用string.Split()
而不是正则表达式:
string input = @"hello\r\nhow\r\nare\r\nyou?";
string[] words = input.Split(@"\r\n", StringSplitOptions.None);
// words == { "hello", "how", "are", "you?" }
if (words.Length >= 3)
{
for (int i = 1; i < words.Length - 1; i++)
// first and last elements ("hello" and "you?") are not between new lines
{
string word = @"\r\n" + words[i] + "\r\n";
// do something with your words "how" and "are"
}
}