我可以使用什么regEx将字符串拆分成整个单词,但前提是它们以#开头?

时间:2008-09-29 18:39:35

标签: regex vb.net

我试过这个......

Dim myMatches As String() = 
System.Text.RegularExpressions.Regex.Split(postRow.Item("Post"), "\b\#\b")

但它正在分裂所有单词,我想要一个以#

开头的单词数组

谢谢!

5 个答案:

答案 0 :(得分:4)

这似乎有用......

C#

Regex MyRegex = new Regex("\\#\\w+");
MatchCollection ms = MyRegex.Matches(InputText);

或vb.net

Dim MyRegex as Regex = new Regex("\#\w+")
Dim ms as MatchCollection = MyRegex.Matches(InputText)

给出......的输入文本。

“asdfas asdf #asdf asd fas df asd fas #df asd f asdf”

......这会产生......

“#asdf”和“#df”

我会告诉你,这不会得到一个字符串数组,但MatchCollection是可枚举的,所以可能就足够了。


此外,我还要补充一点,我通过使用Expresso得到了这个。这似乎是免费的。它非常有助于制作我非常擅长的c#。 (即它为我逃跑了。) (如果有人认为我应该删除这个伪广告,那么请评论,但我认为这可能会有所帮助:)好时光)

答案 1 :(得分:1)

由于您希望在分组中包含单词,因此您应该使用类似

的内容
"\b#\w+\b"

这包括表达式中的实际单词。但是我不确定那是你想要的。你能提供一个输入和所需输出的例子吗?

答案 2 :(得分:1)

使用PHP的preg_match_all()

$text = 'Test #string testing #my test #text.';
preg_match_all('/#[\S]+/', $text, $matches);

echo '<pre>';
print_r($matches[0]);
echo '</pre>';

输出:

Array
(
    [0] => #string
    [1] => #my
    [2] => #text.
)

答案 3 :(得分:0)

以下是Javascript中的代码:

text = "what #regEx can I use to #split a #string into whole words but only" 
// what #regEx can I use to #split a #string into whole words but only"
text.match(/#\w+/g);
// [#regEx,#split,#string]

答案 4 :(得分:0)

在Microsoft正则表达式中,请尝试:“\#:w”

这对我来说在Visual Studio中使用Find是有用的。我不知道它将如何转化为Regex类。

编辑:反斜杠被吞没了。