【发布时间】:2011-10-17 15:08:44
【问题描述】:
我坐在这儿,手里拿着“好的部分”,但我仍然没有更聪明。
任何人都可以为我敲出一个正则表达式,让我可以替换任何“|”实例和 "," 来自一个字符串。
另外,任何人都可以指出一个非常好的学习正则表达式资源的方向,尤其是在 javascript 中(它们是一种特殊的风格吗??)这确实是我知识的一个弱点。
干杯。
【问题讨论】:
标签: javascript regex
我坐在这儿,手里拿着“好的部分”,但我仍然没有更聪明。
任何人都可以为我敲出一个正则表达式,让我可以替换任何“|”实例和 "," 来自一个字符串。
另外,任何人都可以指出一个非常好的学习正则表达式资源的方向,尤其是在 javascript 中(它们是一种特殊的风格吗??)这确实是我知识的一个弱点。
干杯。
【问题讨论】:
标签: javascript regex
str.replace(/(\||,)/g, "replaceWith") 不要忘记末尾的g,这样它会全局搜索字符串,如果你不放它,正则表达式只会替换字符的第一个实例。
意思是替换|(你需要转义这个字符)或(|),
【讨论】:
/[|,]/g,因为它只是一个字符。
[xyz] 定义了一组字符,相当于(x|y|z),但没有分组表达式。
如果您真的想了解正则表达式(以及大多数实现/风格的特殊警告或怪癖),我发现的最佳资源是 Regular-Expressions.info。
如果你真的喜欢正则表达式,我会推荐名为 RegexBuddy 的产品,用于测试和调试各种语言的正则表达式(尽管它完全支持一些东西,它总体来说还不错)
编辑:
最好的方法(我认为,尤其是考虑到可读性)是使用字符类而不是交替(即:[] 而不是 |)
使用:
var newString = str.replace(/[|,]/g, ";");
这会将| 或, 替换为分号
字符类本质上意味着“匹配这些方括号内的任何内容”——只有少数例外。
[a-zA-Z] 表示从a 到z 或从A 到Z 的任何字母)。 ^) 否定 - 它表示此字符类中的任何内容非 ([^0-9] 表示任何不是从0 到9 的字符。\ 将它们转义到类中的任何其他位置【讨论】: