求一正则表达式(问题解决立刻结贴——在线等)

Shine_Panda 2011-10-21 02:43:05

str="$a$=1 and $b$=2";


javascript 中一字符串 。现在想匹配到 $ 之外的内容 如:=1 and 和 =2
这两个部分

...全文
689 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
wloves 2011-10-24
  • 打赏
  • 举报
回复

var str="$a$=1 and $b$=2";

console.log(str.replace(/(\$\w+\$)/g, ""));//output: =1 and =2
console.log(str.split(/\$\w+\$/));//output: [ '', '=1 and ', '=2' ]






不知是否合乎你意?
peng5jun0 2011-10-24
  • 打赏
  • 举报
回复
mark..
qybao 2011-10-21
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 caoyinghui1986 的回复:]
我的原始需求是
“$a$=1 and $b$=2”字符串中 $a$之间 可能有中文":"冒号 如$a:$
$a$之外也可能有中文冒号 如$a$=1:1 我现在想把 $a$之外的中文冒号替换为英文(通常为用户输入的值)。$a$之间的冒号不替换(通常为定义的属性名 如“姓名:”)
[/Quote]
for example
var str="$a:$=1 and $b:$=2:2";
var r1 = str.replace(/(.*?\$.*?\$=[^\s]*):(.*?)/g, "$1:$2");
alert(r1);
Shine_Panda 2011-10-21
  • 打赏
  • 举报
回复
感谢大家,结贴
Shine_Panda 2011-10-21
  • 打赏
  • 举报
回复
我的原始需求是
“$a$=1 and $b$=2”字符串中 $a$之间 可能有中文":"冒号 如$a:$
$a$之外也可能有中文冒号 如$a$=1:1 我现在想把 $a$之外的中文冒号替换为英文(通常为用户输入的值)。$a$之间的冒号不替换(通常为定义的属性名 如“姓名:”)
qybao 2011-10-21
  • 打赏
  • 举报
回复
不知道LZ想得到什么结果?看看是不是这个意思?
var str="$a$=1 and $b$=2";
var r1 = str.replace(/\$.*?\$(=.*?)/g, "$1");
var r2 = str.replace(/.*?(\$.*?\$)=\w*/g, "$1");
alert(r1);
alert(r2);
qybao 2011-10-21
  • 打赏
  • 举报
回复
LZ是想匹配还是想替换?

var str="$a$=1 and $b$=2";
var result = str.replace(/\$.*?\$(=.*?)/g, "$1");
alert(result);


结果是只留下 =1 and =2
是这个意思吗?
还是说吧把 =1 and =2 去掉,留下 $a$ $b$ ?
wolf863292 2011-10-21
  • 打赏
  • 举报
回复
搞的好复杂...
Left_you 2011-10-21
  • 打赏
  • 举报
回复
这个明显用 split 来做比较好啊, 再说js里面好像没replaceAll这个方法吧
oO临时工Oo 2011-10-21
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 caoyinghui1986 的回复:]

引用 11 楼 dracularking 的回复:

str.replaceAll("\\$.*?\\$", "");

这样ok?

这种方式 是直接把 $$ 之间的内容 覆盖了
我期望的能够直接匹配到$$之外的内容 做一些其他操作
如:
str= str.replace(/这里是表达式/ig,function($0,$1,$2){

if($1==xx){

ret……
[/Quote]

function run(){
var str="$a$=1 and $b$=2";
var reg = /[$]{1}[^$]*[$]{1}/;

var str2 = str;
var str3 = "";
while(true){
str3 = str2.replace(reg,"");
if(str2 == str3){
break;
}
str2 = str3;
}

alert(str);//原字符串
alert(str2);//抽取出的字符串
}
kouyiSC 2011-10-21
  • 打赏
  • 举报
回复
str=str.replace(/[$]{1}[^$]*[$]{1}/g,' ')
剑神一笑 2011-10-21
  • 打赏
  • 举报
回复

String res = "str=\"$a$=1 and $b$=2\"";//(?<=\\$)=[^\\$]*
Pattern p = Pattern.compile("\\$(.*?)\\$(=[^\\$\"]*)");
Matcher m = p.matcher(res);
while (m.find()) {
System.out.println(m.group(2));
}
Shine_Panda 2011-10-21
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 dracularking 的回复:]

str.replaceAll("\\$.*?\\$", "");

这样ok?
[/Quote]
这种方式 是直接把 $$ 之间的内容 覆盖了
我期望的能够直接匹配到$$之外的内容 做一些其他操作
如:
str= str.replace(/这里是表达式/ig,function($0,$1,$2){

if($1==xx){

return 1
}
if($==yy){
return 2
}
return "@";
}
jisg_57 2011-10-21
  • 打赏
  • 举报
回复

String str="$a$=1 and $b$=2";
Pattern p = Pattern.compile("(?<=\\$)=[^\\$]*");
Matcher m = p.matcher(str);
while(m.find()){
System.out.println(m.group());
}
oO临时工Oo 2011-10-21
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 caoyinghui1986 的回复:]

引用 10 楼 trocp 的回复:

引用 5 楼 caoyinghui1986 的回复:

引用 3 楼 trocp 的回复:

不知道这样是不是满意
Java code
String str="$a$=1 and $b$=2";
str = str.replaceAll("[$]{1}[^$]*[$]{1}", "");
System.out.println(str);……
[/Quote]

这个有什么问题吗
Shine_Panda 2011-10-21
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 dracularking 的回复:]

str.replaceAll("\\$.*?\\$", "");

这样ok?
[/Quote]
这样貌似还是匹配的 $$ 之间的内容 匹配到$a$ 里面的a 或b 我期望匹配$$之外的内容
Shine_Panda 2011-10-21
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 trocp 的回复:]

引用 5 楼 caoyinghui1986 的回复:

引用 3 楼 trocp 的回复:

不知道这样是不是满意
Java code
String str="$a$=1 and $b$=2";
str = str.replaceAll("[$]{1}[^$]*[$]{1}", "");
System.out.println(str);

这个好像刚好匹配到$$ 之间的内容 ……
[/Quote]
我用的js
str=str.replace(/[$]{1}[^$]*[$]{1}/g,'@')
结果是 :
@=1 and @=2
dracularking 2011-10-21
  • 打赏
  • 举报
回复
str.replaceAll("\\$.*?\\$", "");

这样ok?
oO临时工Oo 2011-10-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 caoyinghui1986 的回复:]

引用 3 楼 trocp 的回复:

不知道这样是不是满意
Java code
String str="$a$=1 and $b$=2";
str = str.replaceAll("[$]{1}[^$]*[$]{1}", "");
System.out.println(str);

这个好像刚好匹配到$$ 之间的内容 的到的结果是 a 和 b
我想要的结果是 $$ 之间的内……
[/Quote]

您确定?

怎么我的输出是:=1 and =2
Left_you 2011-10-21
  • 打赏
  • 举报
回复
(a|b) 改成\w+啊
加载更多回复(8)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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