2011-04-15 78 views
2

我需要解析一个句子。 如果我在句子中找到了一个散列,我想大胆。如何解析ASP.NET中的字符串?

例子:卓悦#hello HI =>卓悦#hello

+5

可能属于在计算器上,和后什么样的代码你有问题一起尝试。 – Brook 2011-04-15 23:27:06

回答

6

似乎是正则表达式

的良好局面

我会做这样的事情

boldHashes("Bonjour #hello Hi"); 

... 

private string boldHashes(string str) 
{ 
    return Regex.Replace(str, @"(#\w+)", "<strong>$1</strong>"); 
} 

在这种情况下,我们会等额文字哈希#加任何长度\w+和组它的一个字()之间,所以我们可以在Regex.Replace功能使用$1substitions


更新 jQuery做同样的事情。

喜欢的东西:

HTML

<div id="myDiv">Bonjour #Hello hi</div> 

jQuery的

$('#myDiv').html($('#myDiv').text().replace(/(#\w+)/g, '<strong>$1</strong>')); 
+0

是否有可能在视图中使用它?因为我在html中需要它。因为我想保存这个字符串而没有'' – Steffi 2011-04-16 08:13:38

+0

谢谢!有用 !!! – Steffi 2011-04-16 08:36:40

+0

如何用jQuery做同样的事情?请 ? – Steffi 2011-04-16 08:37:37

1

有可能是一个更优雅的方式来做到这一点,但你可以使用String.IndexOf方法求得该散列的第一个实例,像这样

String myString = "Bonjour #hello hi"; 
int index = myString.IndexOf('#'); 
if(index>-1) //IndexOf returns -1 if the character isn't found 
{ 
    //search for the next space after the hash 
    int endIndex=mystring.IndexOf(' ',index+1) 
    myString=MakeBold(myString,index,endIndex); 
} 

剩下的就是实现MakeBold功能。

+0

另外,你可能想要扩展函数来考虑字符串中的多个哈希值。 – 2011-04-16 00:32:36