+ -
当前位置:首页 → 问答吧 → 【已解决】正则替换一例。

【已解决】正则替换一例。

时间:2010-05-17

来源:互联网

复制内容到剪贴板
代码:
2, beef up   
[口语]增大,增加(数额);加重,加强,增强…力量,增援;充实;扩大;提高;加油干,用劲干,尽力:
3, endeavor  [in'devə]
n. 努力;尽力(等于endeavour) ①
vi. 努力;尽力(等于endeavour) ②
vt. 努力;尽力(等于endeavour)③
数字2,3等替换为Q:
非数字行加上A:
两次替换好写
\n([^\d])->\nA: \1
\d+,->Q:
求一句的替换表达式.
【未成功】\d+,(.*)\n(?:([^\d].*\n))+,替换为Q:\1\nA: \2,
看来(?:([^\d].*\n))+并不能匹配①②③进行分别处理。

[ 本帖最后由 wgf4242 于 2010-5-19 07:27 编辑 ]

作者: wgf4242   发布时间: 2010-05-17

写出你想替换后的效果,没看明白你的意思

作者: campaignZH   发布时间: 2010-05-17

Q: beef up   
A: [口语]增大,增加(数额);加重,加强,增强…力量,增援;充实;扩大;提高;加油干,用劲干,尽力:
Q: endeavor  [in'devə]
A: n. 努力;尽力(等于endeavour) ①
A: vi. 努力;尽力(等于endeavour) ②
A: vt. 努力;尽力(等于endeavour)③

求一句regexp替换.

作者: wgf4242   发布时间: 2010-05-17

复制内容到剪贴板
代码:
<body>
<textarea name="" rows="10" cols="100" id="ooxx">
2, beef up
[口语]增大,增加(数额);加重,加强,增强…力量,增援;充实;扩大;提高;加油干,用劲干,尽力:
3, endeavor  [in'dev&#601;]
n. 努力;尽力(等于endeavour) ①
vi. 努力;尽力(等于endeavour) ②
vt. 努力;尽力(等于endeavour)③</textarea>
</body>
<script type="text/javascript">
//<![CDATA[
ooxx.value=ooxx.value.replace(/(^|\n)\d+,|\n/g,function (a){
    return isNaN(parseInt(a))?'A:':'Q:'
})
//]]>
</script>

作者: kfguoguo   发布时间: 2010-05-17


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Untitled</title> </head> <body> <textarea id="a">2, beef up [口语]增大,增加(数额);加重,加强,增强…力量,增援;充实;扩大;提高;加油干,用劲干,尽力: 3, endeavor [in'dev&#601;] n. 努力;尽力(等于endeavour) ① vi. 努力;尽力(等于endeavour) ② vt. 努力;尽力(等于endeavour)③ </textarea> </body> </html> <script> alert(document.getElementById('a').value.replace(/\w+([.,])/g,function(a,b){return (b=='.'?'A':'Q')+':'})) </script>
 提示:您可以先修改部分代码再运行

作者: campaignZH   发布时间: 2010-05-17


<script> var str="2, beef up \n\ [口语]增大,增加(数额);加重,加强,增强…力量,增援;充实;扩大;提高;加油干,用劲干,尽力:\n\ 3, endeavor [in'dev&#601;]\n\ n. 努力;尽力(等于endeavour) ①\n\ vi. 努力;尽力(等于endeavour) ②\n\ vt. 努力;尽力(等于endeavour)③\n"; str=str.replace(/^.{1}/gm,function(m){return isNaN(parseInt(m))?"A:"+m:"Q:"}); alert(str); </script>
 提示:您可以先修改部分代码再运行

作者: michaellu   发布时间: 2010-05-17

1.
alert(document.getElementById('a').value.replace(/\w+([.,])/g,function(a,b){return (b=='.'?'A':'Q')+':'}))
(a,b),  a是什么?b是什么?

2.
str=str.replace(/^.{1}/gm,function(m){return isNaN(parseInt(m))?"A:"+m:"Q:"});
/m查了下,刚知道是multiline
return中的m是什么(没看懂这句)


3.
我去哪个手册查哪个函数?
并解答以上2个问题,3Q。

[ 本帖最后由 wgf4242 于 2010-5-17 18:56 编辑 ]

作者: wgf4242   发布时间: 2010-05-17

m只是随便起的参数名,代表正则表达式所匹配的字符串;
正则表达式/^.{1}/gm匹配每行的第一个字符,
function(m){return isNaN(parseInt(m))?"A:"+m:"Q:"},
检查匹配的字符串是不是数字,如果不是在前面加"A:",如果是用"Q:"替换.

作者: michaellu   发布时间: 2010-05-18