【发布时间】:2015-01-20 23:05:03
【问题描述】:
我对正则表达式有点陌生,我在网上找到的解决方案都没有帮助/奏效。
我正在处理 JavaScript 中的单行字符串,它将包含五种类型的数据。
- “#”后跟六个数字/字母(HTML 颜色)(
/#....../g) - 正斜杠后跟任意几个特定字符 (
/\/(\+|\^|\-|#|!\+|_|@|\*|%|&|~)/g) - 一个“$”后跟一个字母序列和一个“|” (
/\$([^\|]+)/g) - 一个“|”一个人 (
/\|/g) - 不属于任何这些类别的字母数字字符
问题是,我有正则表达式来匹配前四个类别,这很重要。 问题是我需要一个正则表达式,用于将前四个正则表达式不匹配的所有字符替换为单个字符,例如“§”。
例子:
This#00CC00 is green$Courier| and /^mono|spaced
§§§§#00CC00§§§§§§§§§$Courier|§§§§§/^§§§§|§§§§§§
我知道我可能以错误的方式解决这个问题,我对正则表达式相当陌生。 本质上,我如何制作一个表示“任何与正则表达式 x、y 或 z 不匹配的东西”的正则表达式?
感谢您的宝贵时间。
【问题讨论】:
-
所以如果你的字符串是:
"#1234567"它应该改为:"#123456§"? -
是的,我会清除与要替换的四个正则表达式不匹配的所有内容。在this site 上测试正则表达式
/#......|\/(\+|\^|\-|#|!\+|_|@|\*|%|&|~)|\$([^\|]+)\||\|/g正是我的意思。我希望所有被选中的东西都不会被选中,反之亦然。
标签: javascript regex regex-negation