重金寻求正则表达式解析器

AWolfBoy 2003-10-13 05:11:13
本人想实现类似UltraEdit之类的文本编辑器的正则表达式查找功能,可能比这还要难点,所以特寻求一个正则表达式解析器(需源码 实现语言不限)。
...全文
51 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
shangzf 2003-10-16
  • 打赏
  • 举报
回复
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>正则表达式</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">

<SCRIPT language=JavaScript1.2>

function execIt(form) {

var re=new RegExp()
var nextpoint = 0; //匹配时的偏移量
var key = true
form.reglist.value=""
re.compile("(1[0-2]|0?[1-9])[-./](0?[1-9]|[12][0-9]|3[01])[-./](\\d\\d\\d\\d)")

do {
var input = form.main.value.substr(nextpoint)
var matchArray = re.exec(input)
if(matchArray) {
form.reglist.value = matchArray[0] +"\n"+form.reglist.value
nextpoint = nextpoint + matchArray.index + matchArray[0].length
}else{
nextpoint = 0
key = false
}
}while(key)
}


//设置当前使用的正则表达式
function setregexp(n) {
var s = document.all.regexplist.value.split("\r\n")
document.all.regexp.value = s[n*2-1]
nextpoint = 0
}

//定义选择监视
var isNav = (navigator.appName == "Netscape")
function showSelection() {
if (isNav) {
var theText = document.getSelection()
} else {
var theText = document.selection.createRange().text
}
if(theText.length>0 && document.all.selechkmode.checked)
document.all.regexp.value = theText
}
if (isNav) {
document.captureEvents(Event.MOUSEUP)
}
document.onmouseup = showSelection
</SCRIPT>

<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY style="FONT-SIZE: 9pt">
<FORM>
<TABLE style="FONT-SIZE: 9pt" rules=none width="100%" frame=above broder="1">
<TBODY>
<TR>
<TD vAlign=top width="50%"><TEXTAREA style="FONT-SIZE: 9pt" name=main rows=5 wrap=virtual cols=58>09-11-2001 09/11/2001 czjsz_ah@stats.gov.cn
asdff 12345 196.168.1.3 www.sohu.com ftp://www.chinaasp.com 2001.9.11 http://www.active.com.cn/club/bbs/bbsView.asp http://www.163.com/inden.htm
</TEXTAREA><br>
<BR>

<TR>
<TD vAlign=bottom><INPUT style="FONT-SIZE: 8pt; WIDTH: 70; HEIGHT: 18px" onclick=execIt(this.form) type=button value=" ok ">
<br>
 <TEXTAREA style="FONT-SIZE: 9pt" name=reglist rows=8 cols=58></TEXTAREA>
</TD>
</TR></TBODY></TABLE></FORM>
<SCRIPT>
setregexp(1)
</SCRIPT>
</BODY></HTML>

Looking the above text,please
warton 2003-10-14
  • 打赏
  • 举报
回复
boost库支持正则表达式,而且现在已经加入到c++标准里了!
justju 2003-10-14
  • 打赏
  • 举报
回复
up
zzwu 2003-10-14
  • 打赏
  • 举报
回复
更进一层,可看:

http://www.boost.org/libs/regex/index.htm

regex就代表正则表达式(regular expression)
Riemann 2003-10-14
  • 打赏
  • 举报
回复
www.c-view.org
或者去官方网站: www.boost.org
sliant 2003-10-13
  • 打赏
  • 举报
回复
j2se 1.4.1 以后的版本自带
AWolfBoy 2003-10-13
  • 打赏
  • 举报
回复
不知道在哪里可以下载,可以说一下吗?
Riemann 2003-10-13
  • 打赏
  • 举报
回复
boost库就支持正则表达式,而且源码是公开的。

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧