質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

3240閲覧

ひらがなの文字列から、'きゃ'、'ぎゃ'などの文字は拗音を合わせて処理する方法

eightharrow

総合スコア8

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/09/19 04:58

編集2018/09/19 10:16

pythonでひらがなの文字列から、'きゃ'、'ぎゃ'などの文字は拗音を合わせて処理する方法を探しています。

pythonで文字列を処理しています。文字列を頭の文字から順番に引数として関数に代入していきたいのですが、文字列中に拗音('ゃ'、'ゅ'、'ょ')が含まれる場合はそれぞれ前の文字と合わせて処理したいです。きゃ、きゅ、きょなど、日本語の開拗音に限ります。(あょ、わゃ、など発音できないものは含みません)
良い方法はないでしょうか?

##コードの例
質問内容の理解のためにコードを示します。例えば下記のコードです。

python

1def printer(letter): 2 # 本来は何らかの処理 3 print(letter) 4sentence = "きょうはきゅうりょうびだ" 5for letter in sentence: 6 printer(letter)

result

123456789101112

となるところを

result

1きょ 234きゅ 5678910

となるような方法を探しています。
質問内容に不明な点などございましたらコメントください。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

quickquip

2018/09/19 08:59

Twitterみたいなくだけた場ででる くゃ とかどうしたいのか、とか、 きゃぁ は3文字にしたいのか、とか考慮することは多いのに質問に情報が少なすぎかと
guest

回答3

0

愚直に。

python

1def printer(letter): 2 print(letter) 3sentence = "きょうはきゅうりょうびだ" 4out = '' 5for letter in sentence: 6 if letter in 'あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをんがぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽ': 7 printer(out) 8 out = letter 9 else: 10 out += letter 11printer(out)

投稿2018/09/19 08:54

mkgrei

総合スコア8560

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

eightharrow

2018/09/19 10:19

ありがとうございます!正規表現を使わずとも全てを書き出して比較していくという力技があるんですね。 確かに愚直が大事です。
guest

0

ベストアンサー

正規表現を使って、findallします。

Python

1import re 2def printer(letter): 3 # 本来は何らかの処理 4 print(letter) 5sentence = "きょうはきゅうりょうびだ" 6for letter in re.findall(r'.[ゃゅょ]?',sentence): 7 printer(letter)

r'.[ゃゅょ]?っ?'の方が良いかもしれません。

投稿2018/09/19 05:14

otn

総合スコア84421

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

eightharrow

2018/09/19 10:25

回答ありがとうございます。今まで使う機会がなかったのですが、正規表現は非常に強力ですね。すぐに使いこなせるようになりたいと思います。
guest

0

https://teratail.com/questions/147322
で教えてもらったのと同じ手法を使えばいいでしょう。
問題はひとつづつ解決したほうがいいですよ。

投稿2018/09/19 05:02

KojiDoi

総合スコア13669

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

eightharrow

2018/09/19 10:17

どちらも見ていただきありがとうございます!回答を確認する前に2つの質問をしてしまいましたが、正規表現の例などはどちらにも応用可能ですね!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問