我有字符串"How are you"
。这个字符串应该变成"How-are-you"
. 正则表达式可以吗?如何?
问问题
16619 次
5 回答
6
另一种选择是replace
$ python -m timeit 'a="How are you"; a.replace(" ", "-")'
1000000 loops, best of 3: 0.335 usec per loop
$ python -m timeit 'a="How are you"; "-".join(a.split())'
1000000 loops, best of 3: 0.589 usec per loop
于 2013-08-11T17:13:58.197 回答
5
只需使用内置替换方法的python:
strs = "How are you"
new_str = strs.replace(" ","-")
print new_str // "How-are-you"
于 2013-08-11T17:12:18.250 回答
3
为什么使用正则表达式?
x = "How are you"
print "-".join(x.split())
--output:--
How-are-you
于 2013-08-11T17:03:33.090 回答
2
正如你所问,使用正则表达式:
>>> import re
>>> s = "How are you"
>>> print re.sub('\s', '-', s)
How-are-you
于 2013-08-11T17:00:46.780 回答
2
根据您的确切需求,使用正则表达式对该主题有很多变化:
# To replace *the* space character only
>>> re.sub(' ', '-', "How are you");
# To replace any "blank" character (space, tab, ...):
>>> re.sub('\s', '-', "How are you");
# To replace any sequence of 1 or more "blank" character (space, tab, ...) by one hyphen:
>>> re.sub('\s+', '-', "How are you");
# To replace any sequence of 1 or more "space" by one hyphen:
>>> re.sub(' +', '-', "How are you");
请注意,“简单”替换替换可能比使用正则表达式更合适(这些非常强大,但在处理之前需要一个编译阶段,这可能会很昂贵。但不确定这是否真的会影响您的程序对于这样一个简单的情况...... . ;)。最后,对于一个特殊情况或替换空格序列,没有什么能比得上x.join(str.split())
...
于 2013-08-11T17:12:47.790 回答