MyException - 我的异常网
当前位置:我的异常网» JavaScript » 怎么用正则表达式向字符串插空格,有意思的

怎么用正则表达式向字符串插空格,有意思的

www.MyException.Cn  网友分享于:2013-03-29  浏览:13次
如何用正则表达式向字符串插空格,有意思的
字符串:   ---HHHH----HHH----H-----
我想往H之间插入空格,生成如---H   H   H   H----H   H   H----H-----   这样的串

应该怎么写表达式?

有没有什么好的实现方式

------解决方案--------------------
str.replace(/(\w)(\w)/g, "$1 $2 ")
------解决方案--------------------
str.replace(/(\w)(?=\w)/g, "$1 ")
------解决方案--------------------
<script type= "text/javascript ">
alert( "---HHHH----HHH----H----- ".replace(/[A-Z]+/g, function (a) {
return a.split( " ").join( " ");
}));
</script>
------解决方案--------------------
\w 包括A-Za-z0-9
如果只要字符改成[A-Za-z]
------解决方案--------------------
这个也是js5.5 + 滴
<script type= "text/javascript ">
alert( "---HHHH----HHH----H----- ".replace(/([A-Z])(?=[A-Z])/g, "$1 "));
</script>
------解决方案--------------------
var str= " ---HHHH----HHH----H----- ";
alert(str.replace(/(\w)(?=\w)/g, "$1 "))
\w 包括A-Za-z0-9
如果只要字符改成[A-Za-z]

测了下,结果符合
------解决方案--------------------
(H)(?=H)
------解决方案--------------------
2.3 预搜索,不匹配;反向预搜索,不匹配
前面的章节中,我讲到了几个代表抽象意义的特殊符号: "^ ", "$ ", "\b "。它们都有一个共同点,那就是:它们本身不匹配任何字符,只是对 "字符串的两头 " 或者 "字符之间的缝隙 " 附加了一个条件。理解到这个概念以后,本节将继续介绍另外一种对 "两头 " 或者 "缝隙 " 附加条件的,更加灵活的表示方法。

正向预搜索: "(?=xxxxx) ", "(?!xxxxx) "

格式: "(?=xxxxx) ",在被匹配的字符串中,它对所处的 "缝隙 " 或者 "两头 " 附加的条件是:所在缝隙的右侧,必须能够匹配上 xxxxx 这部分的表达式。因为它只是在此作为这个缝隙上附加的条件,所以它并不影响后边的表达式去真正匹配这个缝隙之后的字符。这就类似 "\b ",本身不匹配任何字符。 "\b " 只是将所在缝隙之前、之后的字符取来进行了一下判断,不会影响后边的表达式来真正的匹配。

举例1:表达式 "Windows (?=NT|XP) " 在匹配 "Windows 98, Windows NT, Windows 2000 " 时,将只匹配 "Windows NT " 中的 "Windows ",其他的 "Windows " 字样则不被匹配。

举例2:表达式 "(\w)((?=\1\1\1)(\1))+ " 在匹配字符串 "aaa ffffff 999999999 " 时,将可以匹配6个 "f "的前4个,可以匹配9个 "9 "的前7个。这个表达式可以读解成:重复4次以上的字母数字,则匹配其剩下最后2位之前的部分。当然,这个表达式可以不这样写,在此的目的是作为演示之用。

格式: "(?!xxxxx) ",所在缝隙的右侧,必须不能匹配 xxxxx 这部分表达式。

举例3:表达式 "((?!\bstop\b).)+ " 在匹配 "fdjka ljfdl stop fjdsla fdj " 时,将从头一直匹配到 "stop " 之前的位置,如果字符串中没有 "stop ",则匹配整个字符串。

举例4:表达式 "do(?!\w) " 在匹配字符串 "done, do, dog " 时,只能匹配 "do "。在本条举例中, "do " 后边使用 "(?!\w) " 和使用 "\b " 效果是一样的。

反向预搜索: "(? <=xxxxx) ", "(? <!xxxxx) "

这两种格式的概念和正向预搜索是类似的,反向预搜索要求的条件是:所在缝隙的 "左侧 ",两种格式分别要求必须能够匹配和必须不能够匹配指定表达式,而不是去判断右侧。与 "正向预搜索 " 一样的是:它们都是对所在缝隙的一种附加条件,本身都不匹配任何字符。

举例5:表达式 "(? <=\d{4})\d+(?=\d{4}) " 在匹配 "1234567890123456 " 时,将匹配除了前4个数字和后4个数字之外的中间8个数字。由于 JScript.RegExp 不支持反向预搜索,因此,本条举例不能够进行演示。很多其他的引擎可以支持反向预搜索,比如:Java 1.4 以上的 java.util.regex 包,.NET 中System.Text.RegularExpressions 命名空间,以及本站推荐的最简单易用的 DEELX 正则引擎。


------解决方案--------------------
<script type= "text/javascript ">
alert( "中国& < ".replace(/[^\u4e00-\u9fa5]+/g, function (a) {

文章评论

程序员和编码员之间的区别
程序员和编码员之间的区别
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
如何成为一名黑客
如何成为一名黑客
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
代码女神横空出世
代码女神横空出世
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
我的丈夫是个程序员
我的丈夫是个程序员
旅行,写作,编程
旅行,写作,编程
那些争议最大的编程观点
那些争议最大的编程观点
老程序员的下场
老程序员的下场
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
程序员的鄙视链
程序员的鄙视链
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
一个程序员的时间管理
一个程序员的时间管理
中美印日四国程序员比较
中美印日四国程序员比较
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
总结2014中国互联网十大段子
总结2014中国互联网十大段子
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
我是如何打败拖延症的
我是如何打败拖延症的
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
鲜为人知的编程真相
鲜为人知的编程真相
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
漫画:程序员的工作
漫画:程序员的工作
Java程序员必看电影
Java程序员必看电影
程序员都该阅读的书
程序员都该阅读的书
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
每天工作4小时的程序员
每天工作4小时的程序员
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
编程语言是女人
编程语言是女人
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
10个调试和排错的小建议
10个调试和排错的小建议
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
程序员必看的十大电影
程序员必看的十大电影
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有