1

诚然,我不是一个正则表达式的人,但通常我可以想办法解决一些问题。这个让我一头雾水...

我需要匹配并替换一个大于 str (>>) 且具有可选前导空格的 double。我知道这行不通,但类似于...

/\s\s+[>>]/

但这显然不好。

将不胜感激任何帮助。多年来,这个网站对我来说一直是一个了不起的资源,我不敢相信我现在只能发布一些东西,所以它表明即使是像我这样的傻瓜也能够在不打扰人们的情况下受益......直到现在:) 提前致谢。

4

7 回答 7

1

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

/(\s*)(>>){1}/
于 2013-03-14T21:43:26.353 回答
0

用这个 :

str.replace(/\s+>>/g, 'whatever'); 
于 2013-03-15T07:33:25.960 回答
0

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

/>>/

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

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

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

/^\s?>>$/
于 2013-03-14T21:35:42.927 回答
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"
于 2013-03-14T21:36:09.353 回答
0

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

/ *>>/

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

/ ?>>/
于 2013-03-14T21:44:06.593 回答
0

分解你的例子:

  1. \s将匹配任何空白字符
  2. \s+将匹配一个或多个空白字符
  3. [>>]将匹配一个>(见下文)

因此,您的表达式将匹配 a>前面至少有两个空格字符。

如果要匹配零个或多个,则必须使用*; 费克斯\s*_

方括号用于表示字符集,将匹配该集中的任何字符;fex[abc]将匹配 a、b 或 c,但一次只能匹配一个字符。

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

将它们放在一起,我们会为您的情况得到以下正则表达式:

/\s*>>/
于 2013-03-14T21:50:45.953 回答
0

这应该与可选空间一起使用。

/\s{0,}>>/g

访问此链接以测试匹配。

于 2013-03-14T21:53:22.713 回答