Javascript正则表达式我正在努力

时间:2013-03-14 21:33:43

标签: javascript regex string-matching

我当然不是一个正则表达式的人,但通常我可以找到解决问题的方法。这个让我难过......

我需要匹配并替换具有可选前导空格的大于str(>>)的double。我知道这不起作用,但有些东西...... ...

/\s\s+[>>]/

但这显然不好。

非常感谢任何帮助。多年来,这个网站对我来说是一个令人惊叹的资源,我无法相信我现在只能到处发布一些内容,所以即使像我这样的傻瓜也能够在不打扰的情况下获益。人......直到现在:)提前致谢。

7 个答案:

答案 0 :(得分:1)

对于>>在字符串内部和前导空格中,请尝试:

/(\s*)(>>){1}/

答案 1 :(得分:0)

如果您希望空间是可选的,那么您可以简单地执行此操作:

/>>/

您可以将其用作g修饰符的替换模式:

str = str.replace(/>>/g, 'something') 

如果你想检查一个字符串是>>可能之前有一些空间,然后使用

/^\s?>>$/

答案 2 :(得分:0)

这个正则表达式应该可行。

/\s*[>]{2}/

这是更干净的

/\s*>>/

测试:

var pattern = /\s*>>/;
s1 = "             >>";
s2 = ">>";
s3 = ">> surrounding text";
s4 = "surrounding  >> text";
s5 = "surrounding>>text";

s1.match(pattern);
["             >>"]
s2.match(pattern);
[">>"]
s3.match(pattern);
[">>"]
s4.match(pattern);
["  >>"]
s5.match(pattern);
[">>"]

替换示例

var pattern = /\s*>>/;
var s6 = "    >> surrounding text";
s6.replace(pattern, ">");
"> surrounding text"

答案 3 :(得分:0)

如果您希望它匹配无限量的前导空格字符:

/ *>>/

如果您希望它匹配0或1个前导空格字符:

/ ?>>/

答案 4 :(得分:0)

打破你的榜样:

  1. \s将匹配任何空格字符
  2. \s+将匹配一个或多个空白字符
  3. [>>]将匹配一个>(请参阅下文详情)
  4. 因此,您的表达式将与>匹配,前面至少有两个空白字符。

    如果您想匹配零或多,则必须使用*; fex \s*

    方括号用于表示字符集,并且将匹配集合中的任何字符; fex [abc]将匹配a,b或c,但时间只匹配一个字符。

    正则表达式中的单个字符将匹配该字符; fex >将匹配一个大于号的符号。

    将它们放在一起,我们为您的案例提供以下正则表达式:

    /\s*>>/
    

答案 5 :(得分:0)

这应该适用于可选空间。

/\s{0,}>>/g

访问此link以测试匹配项。

答案 6 :(得分:0)

使用它:

str.replace(/\s+>>/g, 'whatever');