我承认我不是一个正则表达式的人,但通常我可以找到我的方式周围的东西。这一个让我困惑。。我需要匹配并替换一个double大于str(>>),它有一个可选的前导空格。我知道这行不通,但一些沿着的...
/\s\s+[>>]/
但这显然不好。会很感激你的帮助。这个网站多年来一直是我的一个惊人的资源,我不敢相信我现在才开始发布一些东西,所以它表明即使是像我这样的傻瓜也能够受益而不打扰人们。到现在为止:)提前感谢。
nafvub8i1#
对于字符串中的>>和前导空格,尝试:
/(\s*)(>>){1}/
vm0i2vca2#
如果你想让空格是可选的,那么你可以简单地这样做:
/>>/
您可以使用它作为g修饰符的替换模式:
g
str = str.replace(/>>/g, 'something')
如果你想检查一个字符串是否是>>,前面可能有一些空格,那么使用
/^\s?>>$/
iyfamqjs3#
打破你的例子:
\s
\s+
[>>]
>
*
\s*
[abc]
/\s*>>/
ttisahbt4#
如果您希望它匹配无限数量的前导空格字符:
/ *>>/
如果要匹配0或1个前导空格字符:
/ ?>>/
tcomlyy65#
使用这个:
str.replace(/\s+>>/g, 'whatever');
p1iqtdky6#
这个正则表达式应该可以工作。
/\s*[>]{2}/
这个更干净
测试:
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"
ylamdve67#
这应该与可选空格一起工作。
/\s{0,}>>/g
7条答案
按热度按时间nafvub8i1#
对于字符串中的>>和前导空格,尝试:
vm0i2vca2#
如果你想让空格是可选的,那么你可以简单地这样做:
您可以使用它作为
g
修饰符的替换模式:如果你想检查一个字符串是否是>>,前面可能有一些空格,那么使用
iyfamqjs3#
打破你的例子:
\s
将匹配任何空白字符\s+
将匹配一个或多个空白字符[>>]
将匹配一个>
(请参阅下面的更多内容)因此,您的表达式将匹配前面至少有两个空格字符的
>
。如果你想匹配零个或多个,你必须使用
*
; fex\s*
.方括号用于表示字符集,并将匹配集合中的任何字符; fex
[abc]
将匹配a、B或c,但一次只能匹配一个字符。正则表达式中的单个字符将匹配该字符; fex
>
将匹配一个大于号。将其组合在一起,我们得到以下正则表达式:
ttisahbt4#
如果您希望它匹配无限数量的前导空格字符:
如果要匹配0或1个前导空格字符:
tcomlyy65#
使用这个:
p1iqtdky6#
这个正则表达式应该可以工作。
这个更干净
测试:
替换示例
ylamdve67#
这应该与可选空格一起工作。