假设我有任何随机字符串,例如。 G。 I want this randomized!
。
我需要一个正则表达式使它看起来像i WaNT thIs RaNdOMizEd!
或I WAnt ThiS RAndomIzED!
等。
正则表达式似乎是最佳选择,因为我只能使用lowerCase
和upperCase
...
答案 0 :(得分:1)
这里不需要正则表达式。
import random
your_string = input()
final = ""
for char in your_string:
if round(random.random()):
final += char.upper()
else:
final += char.lower()
print(final)
说明:
char
。1
(真实),则将char
的大写版本添加到最终字符串中。char
的小写版本添加到最终字符串中。Try it online!您可以看到它运行正常。
答案 1 :(得分:0)
我认为正则表达式不是正确的解决方案。试试
import random
s='Hello World!'
new_string = ''.join([x.lower() if random.random()>0.5 else x.upper() for x in s])
new_string
>>> 'HElLo wORlD!'
答案 2 :(得分:0)
我看不到正则表达式的明显答案。但是这是您可以尝试用python 3编写的函数:
import random
def uppper_or_lower_char(char):
if round(random.random()):
return char.upper()
else:
return char.lower()
def randomizing(string):
randomized_list = map(lambda char: uppper_or_lower_char(char), string)
return ''.join(randomized_list)
s = 'I want this randomized!'
print(randomizing(s))
# resutl = i want THIS rAndomIzed!
答案 3 :(得分:0)
使用Java,这是一种非常简单的方法
public static String randomize(String s) {
Random r = new Random();
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length; i++) {
char c = chars[i];
chars[i] = r.nextInt(2) == 0 ? Character.toUpperCase(c)
: Character.toLowerCase(c);
}
return new String(chars);
}
随机数介于0和1之间,用于确定字符是否应为大写。
内置的Character方法用于转换。