高分求一个正则替换

keithcai 2012-08-24 04:42:38
大概格式是这样的“*:'9',*[1].*[9].*('9');*('9','*[1].*[9]*'1'*”
*是通配符表示任意多个任意字符,现在要把所有的9换成“!value”,上面9和1不是固定的,但是一个任意位数的整数。
给几个例子:
"jldjslfja[][232]skei[245243]jljljdsafleafia:'100',llljfslfsd=kjdfslasf[1].fsdfl[100].dfshakfalf=dsaf93kcs('100');dsffdskf034954('100','dsafhks3fdsfa[1].3dsalcjm,ck3clsfei[100]klljl39hn,znkjhwslafsaf'1'kjljldsafjlajmmncvl"
"ldfs[23f] dsjfa sf :'50',dfsd[1].dfsa[50].dfsaf('50');dfsfas('50','dsafdsf[1].sdfafds[50]===fdsf'1'*"
可以分开几步做,先给出正确答案的给全分!!!
...全文
217 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
JParser 2012-08-27
  • 打赏
  • 举报
回复
只是替换还是简单的,问题是在替换前是不是要检测被替换串是否满足模式?
泡泡鱼_ 2012-08-27
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]
可以参考下我上一个贴子,可以利用$来实现。
我已经做出一个方案,只是我分了7步做,很繁琐,我想这里的大神们应该有更好的方案,看来是没有可能了!唉~~~
[/Quote]

你贴出一个完整的真实的示例,再说明哪些需要替换,哪些不需要替换,这才好办。你乱打一气,看不懂
keithcai 2012-08-27
  • 打赏
  • 举报
回复
可以参考下我上一个贴子,可以利用$来实现。
我已经做出一个方案,只是我分了7步做,很繁琐,我想这里的大神们应该有更好的方案,看来是没有可能了!唉~~~
泡泡鱼_ 2012-08-27
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
各位大哥看清题目好不好?都说了9和1不是固定的!!怎么也应该用(\d+)吧?还有我只要换9,换1。
总而言之就是换掉例子里所有那些9的位置的数字。
究竟我要做什么,我可以告诉你,9是二维数组的列坐标,1是比较值,9需要替换,1不需要替换!懂了么?
希望楼下给个正确答案,不用一步到位,分几步也行
[/Quote]

朋友,你这么描述不清楚的。正则替换,对某种规则而言,它必定是唯一的

如果说你的字符串中会同时出现 '1'和'9' 这个9我也只是举个例子,两个字符串匹配规则相同,你怎么可能去过滤掉另一个?

你需要说出,你想要替换的内容的唯一格式。比如说:必定是[数字] 或者:必定是 特定字符[数字]特定字符

这种类似的
Go 旅城通票 2012-08-27
  • 打赏
  • 举报
回复
不明白楼主要干嘛,描述混乱,你要替换9为!value那不直接替换9就好了?

str=str.replace(/9/g,'[!value]');
泡泡鱼_ 2012-08-27
  • 打赏
  • 举报
回复
你如果只是替换[这中间的数字]
就只用这一个就好了呀:
str=str.replace(/[\[][\d]{1,}[\]]/g,'[!value]');
keithcai 2012-08-27
  • 打赏
  • 举报
回复
只要换9,不换1,上面打错了
keithcai 2012-08-27
  • 打赏
  • 举报
回复
各位大哥看清题目好不好?都说了9和1不是固定的!!怎么也应该用(\d+)吧?还有我只要换9,换1。
总而言之就是换掉例子里所有那些9的位置的数字。
究竟我要做什么,我可以告诉你,9是二维数组的列坐标,1是比较值,9需要替换,1不需要替换!懂了么?
希望楼下给个正确答案,不用一步到位,分几步也行
泡泡鱼_ 2012-08-26
  • 打赏
  • 举报
回复
搞不懂你到底想干什么,以下是将你给出的未例字符串中符合 '最少一位数字' 和 [最小一位数字]的,全都替换成!value
str=str.replace(/[\'][\d]{1,}[\']/g,'\'!value\'');
str=str.replace(/[\[][\d]{1,}[\]]/g,'[!value]');
泡泡鱼_ 2012-08-26
  • 打赏
  • 举报
回复
搞不懂你到底想干什么,以下是将字符串中所有数字替换成!value
replace(/[\d]/g,'!value');
似梦飞花 2012-08-26
  • 打赏
  • 举报
回复
不明白你的意思啊 把所有的9换掉replace("9","!value")不可以吗?
hch126163 2012-08-24
  • 打赏
  • 举报
回复
把所有的9换成“!value”
replace(/9/ig, "!value");

替换 '9' [9]
replace(/('|\[)9('|\])/ig, "$1!value$2");

  • 打赏
  • 举报
回复
var pattern = /('|\[)9('|\])/g;
var str ="字符串"
str = str.replace(pattern, "$1!value$2s");
alert(str);
这样吗?

87,910

社区成员

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

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