将所有点替换为单个

时间:2018-09-20 04:31:16

标签: javascript regex regular-language

如何更换

PHP 7

. . . Hello . . . . . . world . . .

用简单的点代替“点空间点”

尝试如下:

. Hello . world .

2 个答案:

答案 0 :(得分:2)

您可以使用

d[j]

匹配一个句点,然后重复一组空格,然后尽可能多地重复一个句点,然后用一个句点替换所有空格。

#include <iostream>

bool duplicateTest(int (&d)[10]) {
    for (int i = 0; i < 10; ++ i)
        for (int j = i + 1; j < 10; j++)
            if (d[i] == d[j]) {
                std::cout << "Invalid entry, do not repeat values\n"
                             "Enter 10 integers with no repeated values:\n";
                return true;
            }
    return false;
}

int main() {
    int d[10];

    std::cout << "Enter 10 integers with no repeated values:\n";
    for (int i = 0; i < 10; i++)
        std::cin >> d[i];

    while (duplicateTest(d))
        for (int i = 0; i < 10; i++)
            std::cin >> d[i];

    std::cout << "Done\n";
    return 0;
}

答案 1 :(得分:1)

我们可以将替换表示为任何单个点,然后依次跟一个空格和另一个点,即整个数量出现一次或多次。也就是说,我们可以找到以下模式,然后仅替换为一个点:

const str = '. . . Hello . . . . . . world . . .';
console.log(
  str.replace(/\.(?: \.)+/g, '.')
);

代码示例:

'ID','NO_QUESTION','NO_RESPONSE','VALUE','MEMORY','AVAILABILITY','CLICK_EFFET'
'34','01','01','1','1','0',('q01a01vato1dito0','q01a02vato0dito1')
'35','01','02','0','0','1',('q01a01vato0dito1','q01a02vato1dito0')

编辑:

通过使用\.( \.)+ 关闭捕获,即使用以下模式,我们可以使模式效率更高:

var input = ". . . Hello . . . . . . world . . .";
console.log(input);
input = input.replace(/\.( \.)+/g, ".");
console.log(input);