要在下面文本查找匹配ef内容:
"abcd]ef" 'abcd]ef' =abcd]ef =abcd]ef >abcd]ef<
"abcdef" 'abcdef' =abcdef =abcdef >abcdef<
"ef" 'ef' =ef =ef >ef<
"]ef" '+ef' =-ef =*ef >/ef<
"abcdef" "ef" = abc ="d ef = ef ' 'abcdef' 'ef' >abcdef< >ef< >fsdgs>
要求ef必须(以"开始,则以"结束;或以'开始,则以'结束;或以>开始,则以<结束;或以=开始,则以空格或>结束)
且其开始和结束条件字符不包含在匹配内容中
"abcd]ef" 'abcd]ef' =abcd]ef =abcd]ef >abcd]ef<
"abcdef" 'abcdef' =abcdef =abcdef >abcdef<
"ef" 'ef' =ef =ef >ef<
"]ef" '+ef' =-ef =*ef >/ef<
"abcdef" "ef" = abc ="d ef = ef ' 'abcdef' 'ef' >abcdef< >ef< >fsdgs>
求返回这个结果的正则表达式
曾用过这个正则表达式:(?<=')ef(?=')|(?<=")ef(?=")|(?<=>)ef(?=<)|(?<==)ef(?=( |>))
但在js的RegEx的对象不能用<=,请高手指点
"abcd]ef" 'abcd]ef' =abcd]ef =abcd]ef >abcd]ef<
"abcdef" 'abcdef' =abcdef =abcdef >abcdef<
"ef" 'ef' =ef =ef >ef<
"]ef" '+ef' =-ef =*ef >/ef<
"abcdef" "ef" = abc ="d ef = ef ' 'abcdef' 'ef' >abcdef< >ef< >fsdgs>
要求ef必须(以"开始,则以"结束;或以'开始,则以'结束;或以>开始,则以<结束;或以=开始,则以空格或>结束)
且其开始和结束条件字符不包含在匹配内容中
"abcd]ef" 'abcd]ef' =abcd]ef =abcd]ef >abcd]ef<
"abcdef" 'abcdef' =abcdef =abcdef >abcdef<
"ef" 'ef' =ef =ef >ef<
"]ef" '+ef' =-ef =*ef >/ef<
"abcdef" "ef" = abc ="d ef = ef ' 'abcdef' 'ef' >abcdef< >ef< >fsdgs>
求返回这个结果的正则表达式
曾用过这个正则表达式:(?<=')ef(?=')|(?<=")ef(?=")|(?<=>)ef(?=<)|(?<==)ef(?=( |>))
但在js的RegEx的对象不能用<=,请高手指点
解决方案 »
- ASP.NET Development Server 问题
- 关于sql2000和2005的问题
- |M| 事ItemCommand中Repeater如何得到绑定时的那一行的数据
- 写的asp.net1.1网站,用的是utf-8编码,放在外国的英文操作系统上,网站里面的中文出现乱码,如何解决?
- 请教高手一个问题
- ASP.NET入门的绝对菜鸟问题希望各位朋友指导一下!(希望大家不要笑哈)
- 低价转让一套正版Visual Studio .Net 2003 Professional
- 想尝试用ASP.NET开发简单的企业网站,包括后台管理,想知道一般的流程?
- 入门的问题!
- 如何判一个DateTime的变量是否为空,未赋值?
- 关于JS掉复选框全选的问题。急!
- 谁有手机号码 算命 对照关系表
就楼主的问题,如果其运用环境是在JS当中,确实比较麻烦
在这里用了一个折中的方案,希望可以帮到楼主
以下是Demo
因为不能指定匹配字符的前置条件预搜索,所以我采用直接指定的方式,为的是匹配我们需要的内容
但这样会把我们指定的前置字符一起写入匹配,不过处理这个就比较简单了,直接把匹配的前置字符去掉,即完全是满足条件的匹配了<script type="text/javascript">
window.onload=function MatchDemo(){
var r, re; // 声明变量。
var s = "\"ef\"\'ef\' =ef =ef > ef < \"]ef\"\'+ef\'=-ef=*ef>/ef<\"abcdef\"\"ef\"=abc";
s=s+" =\"d ef = ef \' \'abcdef\' \'ef\' > abcdef < > ef < > fsdgs> ";
alert(s); re = /\'ef(?=\')|\"ef(?=\")|>\s*ef\s*(?=<)|=ef(?=[\s])/ig;
r = s.match(re);
alert(r.length);
for(i=0;i<r.length;i++)
{
alert(r[i].substr(1));
}
}</script>