gpt4 book ai didi

正则表达式 : How to remove all whitespaces around certain character?

转载 作者:行者123 更新时间:2023-12-03 16:45:22 25 4
gpt4 key购买 nike

可能我做错了什么,我在 PHP 中找到了一个正则表达式来实现所需的替换在C# ,但将其应用于 javascript 失败。

示例:

text ( 4 |-4 | 1 "test") [ 0 50 90 ]

应该清理到:

text(4|-4|1 "test")[0 50 90]

如您所见,我删除了方括号和 | 前后的所有空格。

到目前为止我的代码:

        // remove whitespaces around brackets []
text = text.replace(/\s*\[\s*(.*?)\s*]\s*/g, '[$1]');
// remove whitespaces around brackets ()
text = text.replace(/\s*\(\s*(.*?)\s*\)\s*/g, '($1)');
// remove all whitespaces around | (FAILS)
// text = text.replace(/\s*\|\s*(.*?)\s*\|\s*/g, '|$1|');
// text = text.replace(/\s*|\s*/, '$1');

看起来也太复杂了。

我想知道每个标志的正则表达式。

并非所有替换都在一个正则表达式中,为了学习我更喜欢每行一个替换。

最佳答案

这样就可以了:

var text = 'text ( 4 |-4 | 1 "test"  )  [ 0 50 90 ]';
text = text.replace(/\s*([|()[\]])\s*/g, '$1');

alert(text)

此正则表达式查找(可选的)空格,然后,在一个捕获组中,一个不能有边界空格的字符,然后是另一个可选的空格,并只用字符替换所有字符,有效地删除空格。


现在,如果你想将替换放在单独的行上,并且只替换空格字符,而其他空白保持不变,试试这个:

var text = 'text ( 4 |-4 | 1 "test"  )  [ 0 50 90 ]';
text = text.replace(/ *([|]) */g, '$1')
.replace(/ *([(]) */g, '$1')
.replace(/ *([)]) */g, '$1')
.replace(/ *([[]) */g, '$1')
.replace(/ *([\]]) */g, '$1');

alert(text)

或者这个:

var text = 'text ( 4 |-4 | 1 "test"  )  [ 0 50 90 ]';
text = text.replace(/ *(|) */g, '$1')
.replace(/ *(\() */g, '$1')
.replace(/ *(\)) */g, '$1')
.replace(/ *(\[) */g, '$1')
.replace(/ *(\]) */g, '$1');

alert(text)

对于单个字符,字符类有点矫枉过正,但是您需要转义 ()[],然后。 (就像我在最后一个片段中所做的那样)

关于正则表达式 : How to remove all whitespaces around certain character?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33078568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com