richie.ju 2009-09-30 16:58
果然是比较常用的。
richie.ju 2009-08-18 17:27
这篇文章很不错。
xfh 2009-07-12 16:28
感觉不错
nachutianbing 2009-07-12 15:27
嗯,很不错!让我学到不少做人方面的知识。
YokerWu 2009-06-23 11:17
为什么要用上 循环 呐?
ztotem 2009-06-18 19:38
@冰の酷龙
呵呵,能从不同的角度看问题,是一种优秀品质
冰の酷龙 2009-06-18 18:49
@lazylu
顶,我觉得回复的思路比楼主的更值得学习
嘿嘿,别见怪。
richie.ju 2009-06-18 17:19
不得不顶啊~
lazylu 2009-06-18 16:59
有这么多评论贴代码这篇文章就算成功的了
woalang 2009-06-18 15:26
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication2
{
class Class2
{
static void Main(string[] args)
{
string str = "Hello I'm Chinese,so I love China.My Name is Guo-Jing
http://www.shangducms.com"; Split(str);
Console.ReadKey();
}
static void Split(string str)
{
byte[] bs = Encoding.GetEncoding("GB2312").GetBytes(str);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < bs.Length; i++)
if (bs[i] == 32 || bs[i] == 44 || bs[i] == 46 || bs[i] == 58)
{
sb.Append("\n");
}
else if (bs[i] == 47)
{
}
else if (bs[i] < 128)
sb.Append((char)bs[i]);
Console.WriteLine(sb.ToString());
}
}
}
ztotem 2009-06-18 13:49
--引用--------------------------------------------------
谢慧琦: 不建议使用正则表达式
对于大片的文章,能够使用最基本的字符串函数一遍处理是最佳的
使用正则表达式性能不可控
--------------------------------------------------------
嗯,确实是这样。
表现看起来很简单,如果耐心深入分析,发现里面的水未必是浅的。老外在这方面科学严谨的态度还是值得学习的。
谢慧琦 2009-06-18 13:41
不建议使用正则表达式
对于大片的文章,能够使用最基本的字符串函数一遍处理是最佳的
使用正则表达式性能不可控
谢慧琦 2009-06-18 13:39
@Sapphire
支持你的方法
ztotem 2009-06-18 13:38
@bbbbbutton
题目确实出的不够严谨,出这个题的目的也是为了在有闲的时候,自己考虑有哪些可能性,并不局限于我所说的例子。发散性的提问题,分析,并尝试解决。
集思广益的乐趣是无穷的。:)
James.Ying 2009-06-18 13:29
这个。。。。不算分词吧,只是按照一定格式来匹配,比如文章中有ma,难道也算一个单词吗?
为爱痴狂 2009-06-18 13:18
我想这就是考验正则表达式的能力吧!没什么难的.
你应该用\b.
用这个正则表达式试试:
@"^.+?\b|\b.+?\b|\b.+?$"
如果不想匹配到空格,这将'.'改为'\S'即可:
@"^\S+?\b|\b\S+?\b|\b\S+?$"
徐少侠 2009-06-18 13:06
--引用--------------------------------------------------
ddd: private string Test(string _string)
{
string _return = "";
char[] _speicalChar ={ ',', '.' };//定义不显示的特殊字符
for (int i = 0; i < _speicalChar.Length; i++)
{
_string.Replace(_speicalChar[i], ' ');
}
string[] _wordsList = _string.Split(' ');
for (int i = 0; i < _wordsList.Length; i++)
{
_return += _wordsList[i] + "<br/>";
}
return _return;
}
--------------------------------------------------------
晕,没看见这个老大已经写出来了
呵呵
徐少侠 2009-06-18 13:05
--引用--------------------------------------------------
bbbbbutton: 题目出得都不严谨,还考验编程人的严谨思维?
按题目的说法,直接用String.Split(' ')就成,还需要正则?
--------------------------------------------------------
比较赞同
即使有多种符号的情况,那么可以如下操作
枚举所有分隔符,对目标字符串进行replace,都换成空格
这个步骤也可以使用一个正则替换完成
压缩所有一个以上的空格
也可以用一个正则搞定
然后,根据空格分词
正常的三个正则能解决问题了
ddd 2009-06-18 12:58
private string Test(string _string)
{
string _return = "";
char[] _speicalChar ={ ',', '.' };//定义不显示的特殊字符
for (int i = 0; i < _speicalChar.Length; i++)
{
_string.Replace(_speicalChar[i], ' ');
}
string[] _wordsList = _string.Split(' ');
for (int i = 0; i < _wordsList.Length; i++)
{
_return += _wordsList[i] + "<br/>";
}
return _return;
}
bbbbbutton 2009-06-18 12:43
题目出得都不严谨,还考验编程人的严谨思维?
按题目的说法,直接用String.Split(' ')就成,还需要正则?
guojing 2009-06-18 12:04
英文本来就比较简单,而且这个既然能够使用类库,就根本就不需要考虑算法了什么了的,不知道这题目考什么。。
namespace Test
{
class Program
{
static void Main(string[] args)
{
string str = "Hello I'm Chinese,so I love China.My Name is Guo-Jing
http://www.shangducms.com"; str = Transform(str);
Split(str, ' ');
Console.ReadKey();
}
static void Split(string str,char charLetter)
{
string[] words = str.Split(charLetter);
for (int i = 0; i < words.Length; i++)
{
if(words[i]!="")
Console.WriteLine(words[i]);
}
}
static string Transform(string str)
{
char[] chars = str.ToCharArray();
string retValue = string.Empty;
for(int i=0;i<chars.Length;i++)
{
if (!((chars[i] >= 'a' && chars[i] <= 'z') || (chars[i] >= 'A' && chars[i] <= 'Z')||chars[i]=='\''||chars[i]=='-'))
{
chars[i] = ' ';
}
retValue += chars[i].ToString();
}
return retValue;
}
}
}
输出结果
Hello
I'm
Chinese
so
I
love
China
My
Name
is
Guo-Jing
http
www
shangducms
com
solosky 2009-06-18 11:57
这个是典型的分词问题吧,英语来说是最简单的,因为每个单词都有空格隔开,逐个扫描空格,分割就行了。至于其他标点符号在分词后做点判断就行了~~
要是中文就相当的难了。。
guojing 2009-06-18 11:41
题目有点小无聊,但是还行。。
但是如果用正则做的话我觉得本身没有多大的意义。。
Sapphire 2009-06-18 11:37
static void Main(string[] args)
{
string source = @"WASHINGTON – From simple home loans to Wall Street's most exotic schemes, the government would impose and enforce sweeping new rules of the road for the nation's battered financial system under an overhaul proposed Wednesday by President Barack Obam
Aimed at preventing a repeat of the worst economic crisis in seven decades, the changes would begin to reverse a determined campaign pressed in the 1980s by President Ronald Reagan to cut back on federal regulations.
Obama's plan, spelled out in an 88-page white paper, would do little to streamline the alphabet soup of agencies that oversee the financial sector. But it calls for fundamental shifts in authority that would eliminate one regulatory agency, create another and both enhance and undercut the authority of the powerful Federal Reserve.";
string[] words = GetAnyWords(source);
foreach(string s in words)
{
Console.WriteLine(s);
}
Console.ReadKey();
}
private static string[] GetAnyWords(string source)
{
List<string> Words = new List<string>();
StringBuilder sb = new StringBuilder();
foreach (char c in source)
{
if (!IsLetter(c))
{
Words.Add(sb.ToString());
Words.Add(c.ToString());
sb.Remove(0, sb.Length);
}
else
{
sb.Append(c.ToString());
}
}
return Words.ToArray();
}
private static bool IsLetter(char c)
{
if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
{
return true;
}
return false;
}
暂时不符合【并且类似I'm 应该是一项,有-连字符的情况也要考虑】这样的条件。。。不过,要修改成那样也不麻烦
ztotem 2009-06-18 11:32
@Sapphire
sorry,没有描述清楚,单词允许重复出现,并且类似I'm 应该是一项,有-连字符的情况也要考虑。越贴进实际情况越好。
Sapphire 2009-06-18 11:29
单词允许重复出现吗?
大道无情 2009-02-04 15:19
太无敌的技巧
richie.ju 2009-01-21 09:38
--引用--------------------------------------------------
ztotem: @juxiaoqi
原来的是在Sqlserver2000下的,现在加上sqlserver2005的了。
--------------------------------------------------------
博主果然回复够及时。
ztotem 2009-01-20 14:55
@juxiaoqi
原来的是在Sqlserver2000下的,现在加上sqlserver2005的了。
juxiaoqi 2009-01-20 10:57
按照你的代码试了后:
消息 208,级别 16,状态 1,第 1 行
对象名 'SysProperties' 无效。
尚学冉 2008-11-10 09:37
有时候放弃也是一种解脱,也许放弃的正是你所得到和拥有的。
stefanie 2008-11-07 21:09
@ztotem
CMS只负责静态的东西,用户留言,新闻评论,登录等动态程序,需要有单独的系统。不属于CMS的范畴。
关于文件分发的问题,可能会遇到时效性的问题,比如,我的首页已经上传到各个远程文件服务器了,但是我的素材(图片,FLASH)还没有上传上去,这样用户可能访问到新的静态页,但是页面的素材都无法展现。这个问题如何解决????
孙大圣 2008-11-06 10:43
UltraEdit中正则应用
说明:以下所有正则表达式引擎皆为Unix风格表达式,在UltraEdit中,选择菜单“高级”-“配置”-“搜索”-“正则表达式”,勾选“Unix样式正则表达式”,点确定即可。
一、去除程序代码中行首的行号:
方法:1.尾行如果没有回车换行,请手工回车。
2.将光标移动到文本首行首列。
3.按ctrl+R,并勾选“正则表达式”和“从文件顶部全部替换”。
4.搜索框输入:([ ]*)([\d]+)([\s\S]*)
5.替换框输入:\1\3
6.点击“全部替换”按钮。
zeus2 2008-11-04 13:55
很好的技巧。
liydotnet 2008-11-04 12:54
good
liydotnet 2008-11-04 12:53
收藏了
卓畅 2008-10-31 15:42
很深奥 我有点不明白
Just Do It! 2008-10-24 17:17
很有用的
Just Do It! 2008-10-24 17:17
哈哈
juxiaoqi 2008-09-18 08:51
受益匪浅~
幽幽猪 2008-09-17 17:13
我的QQ是8520194,想请教一下关于ASP调用WebService的,希望能够帮忙,谢谢
幽幽猪 2008-09-17 17:11
可以请教一下关于这个调用的问题吗?
juxiaoqi 2008-08-22 09:24
有点境界了
juxiaoqi 2008-08-19 11:12
顶!
ztotem 2008-05-03 18:48
@lzppcc
FTP同步在安全方面不知道会不会有影响,如果可行不失为一个好方法。
ztotem 2008-05-03 18:43
@lexus
主要是为了负载平衡,因为是老的系统上的开发,不可能推倒重来,所以在生成文章后需要对生成的静态文件也要能更新和删除操作。@lexus提到的留言没有考虑到,目前是用的外部类似“吧”的系统,有独立的系统和服务器资源,通过传标题,文章ID来留言,暂时还能对付,但不太符合CMS系统的完整性。
土豆网 2008-04-24 22:40
兄弟太厉害了。我还是什么鸟都不是
lzppcc 2008-04-24 19:45
cms一般使用ftp方式同步的.
lexus 2008-04-24 19:39
这个同步的作用是什么啊?为了保护内网的服务器,还是说通过同步程序,将一个cms的内容,分发到多机上,以达到负载平衡,同步的都是静态的内容话,那用户留言什么的呢怎么处理啊?
ztotem 2008-04-24 18:22
嗯,用的Visio2003,请查收邮件。:)