如何使用正则表达式在文本文件中找到每个特定的字符串

本文关键字:字符串 正则表达式 何使用 文本 文件 | 更新日期: 2023-09-27 18:32:13

我需要搜索并获取" # XXX YYY "的每个实例,另一个例子是" # LOL foo "或"# HAHALOL omgpls"(因为我缺乏想象力:P。如果我可以在文本文件中获取基于此的搜索中所有命中的索引,那就太好了。

在文本文件中。我已经尝试了几次正则表达式,但我似乎无法让它工作。

"#"总是存在的,然后有一个空格,然后是一个长度未知但通常少于 5 个字符的字符串。然后又有一个空格,然后再次出现长度未知的相同字符串。

如何使用正则表达式在文本文件中找到每个特定的字符串

试试这个常规表达式

#'s'w+'s'w+

bool ok = System.Text.RegularExpressions.Regex.IsMatch("# XXX YYY", @"#'s'w+'s'w+");
's  --> space
'w  --> any word character
+   --> variable length

请参阅此处的快速参考

编辑:

MatchCollection matches = Regex.Matches("abcde # XXX YYY  abcde", @"#'s'w+'s'w+");
foreach(Match  m in matches)
{
    string value = m.Value;
    int indexOfInput = m.Index;
}

如果你只谈论句子中的几个单词或一个单词,那么你必须匹配像这样的模式

"#aaaa"
"#aa aa"
"#aa      aaaaa" 

正确的正则表达式必须是这样的:

"#'w+ ?'s?'w+"

这匹配:

'w+ - 1-N words
?'s - presence or absence of a space after first word
?'w+ - presence or absence of a second word with 1-N number of characters