Regexp用随机值替换字符串中重复出现的值

时间:2016-04-27 14:35:07

标签: regex

是否可以创建一个找到重复发生的值的正则表达式,并用一个随机选择的预定义值替换每个实例?

以下是要搜索的文字:

a f a f a f a ....

字母a应该被替换,让我们说' apple '或' table '。

4 个答案:

答案 0 :(得分:1)

JavaScript解决方案:

使用aapple随机替换所有出现的table

var str = 'a f a f a f a ';

var re = /a/g;

var replacements = ['apple', 'table'];

var newStr = str.replace(re, function() {
  var roll = Math.floor(Math.random() * 2);
  return replacements[roll];
});

document.body.textContent = newStr;

答案 1 :(得分:0)

简单地使用此模式:

/a/g

Online Demo

  • /分隔符
  • a匹配字符(区分大小写)
  • g全球。所有比赛(首场比赛时不返回)

var string = 'a f a f a f a  ...';
var pattern = /a/g;
var replacements =['apple', 'table'];

var result = string.replace(pattern, function(re) {
  return replacements[Math.floor(Math.random() * replacements.length)];
});

document.write(result);

答案 2 :(得分:0)

你应该尝试像

这样的东西
yourString.replace(/a/g, "random");

答案 3 :(得分:0)

python 中,您应该使用replace()字符串方法:

c_str = 'a f a f a f a'
print c_str.replace('a', 'apple')

要通过'apple'或'table'随机替换,您可以使用random模块和list comprehension

import random

words = ['apple', 'table']

c_str_new = ''.join([c.replace('a', words[random.randint(0, 1)]) for c in c_str])