【发布时间】:2011-05-11 18:14:11
【问题描述】:
我在用 C# 编写正则表达式时遇到问题;它的目的是从给定的字符串中提取所有以“@”开头的单词,以便它们可以存储在某种类型的数据结构中。
如果字符串是“The quick @brown fox jumps over the lazy @dog”,我想得到一个包含两个元素的数组:brown 和 dog。它需要正确处理边缘情况。例如,如果它是 @@brown,它仍然应该产生 'brown' 而不是 '@brown'。
【问题讨论】:
-
word 是任何不带空格的字母数字字符串。
-
@Prabhu:是的,但是是
niño、éléphant或Marie-Hélène的话? -
是一个字母数字字符串,表示其中只包含
\p{Alphabetic}和/或\p{Number}代码点?还是您想强加一些更受限制的含义? -
@M42,一个词可以是:@"^([A-Za-z0-9])*"
-
如果是单词,则不能使用
\w。您必须使用真正的\p{Alphabetic}属性和附加规定。