-1

私は文字列を持っています"How are you"。この文字列は になり"How-are-you"ます。正規表現で可能ですか?どのように?

4

5 に答える 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

replace メソッドに組み込まれている pythons を使用するだけです。

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");

「単純な」置換のためには、おそらく正規表現を使用するよりも適切であることに注意してくださいこれらは非常に強力ですが、処理の前にコンパイル段階が必要であり、コストがかかる可能性があります。ただし、このような単純なケースでプログラムに実際に影響を与えるかどうかはわかりません.. . ;)。最後に、1 つの特殊なケースまたはスペースのシーケンスの置換については、おそらく勝るものはありませんx.join(str.split())...

于 2013-08-11T17:12:47.790 に答える