0

我需要搜索并获取“”的每个实例# XXX YYY,另一个示例是“ # LOL foo”或“#HAHALOL omgpls”(对不起,我缺乏想象力:P。如果我可以在文本文件中获取搜索中所有命中的索引基于此会很好。

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

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

4

2 回答 2

3

试试这个正则表达式

#\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;
}
于 2012-04-26T06:54:35.960 回答
1

如果您在句子中只谈论几个单词或一个单词,那么您必须匹配以下模式

"#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
于 2012-04-26T07:14:05.963 回答