正则表达式,用于在特定数量的逗号后替换字符

时间:2012-11-14 09:56:40

标签: regex expression

我有一个这样的字符串:

word1, word2, word3, word4, word5

结果如下:

word1, word2, word3 . . .

也就是说,我想替换第三个逗号(包括第三个逗号)之后的所有内容

. . .

使用Oracle REGEXP_REPLACE函数。

提前感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

^(([^,]*,){2,2}[^,]*),.*

并将其替换为找到的内容

\1 . . .

我没有使用该功能的经验,但它可能会像这样:

REGEXP_REPLACE(str, '^(([^,]*,){2,2}[^,]*),.*', '\1 . . .')

答案 1 :(得分:0)

不需要正则表达式或'设计'。

  1. 拆分','

  2. 迭代并替换。

  3. 重新加入并欢欣鼓舞。

答案 2 :(得分:0)

您可以使用implodearray_slice代替正则表达式:

<?php
$words_to_display = 3;
$str = "word1, word2, word3, word4, word5";

$array = explode(', ', $str);
print_r($array);

$array = array_slice($array, 0, $words_to_display);

$str = implode(', ', $array).' . . .';
echo $str;
?>

演示:http://ideone.com/TTmPhr