マーベル映画シリーズの伝説の始まり『アイアンマン』を紐解く! >>

import re

class_name = "ValueFunctionTrainer"
の時、
snaked = re.sub("(.)([A-Z][a-z]+)", r"\1_\2", class_name) #①
print(snaked ) #Value_FunctionTrainer
snaked = re.sub("([a-z0-9])([A-Z])", r"\1_\2", snaked) #②
print(snaked ) #Value_Function_Trainer

と表示されるようですが、①と②の正規表現の意味を教えてください。

A 回答 (1件)

1


任意の1文字(これが\1)の後ろに、「英大文字1文字が続きその次に英小文字が1文字以上続く」(これが\2)

2
英小文字か数字が1文字(これが\1)、その後ろに、英大文字が1文字(これが\2)続く
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2019/04/21 15:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

Qpythonのデータ型に組み込み型があると思いますが、なぜ組み込み型と呼ぶのでしょう? なにが何に組

pythonのデータ型に組み込み型があると思いますが、なぜ組み込み型と呼ぶのでしょう?
なにが何に組み込まれているのでしょう?
オブジェクトにデータ型が組み込まれているという意味でしょうか?

Aベストアンサー

型が言語に組み込まれている。
https://docs.python.org/ja/3/library/stdtypes.html

クラス型なんかは組み込み型や他のクラス型の組合せでPythonプログラム上で定義できるけど、組み込み型が何もなかったらクラス型の定義もできないですから。

Qプログラムの在宅請負業務ができるようになるまで、どのくらいの期間?

プログラミングの初歩的な事も分からず、プログラミングが全く未経験の人間が、これからプログラムを独学で学んで、プログラムの在宅請負業務ができるようになるまで、どのくらいの期間が掛かると思いますか?

Aベストアンサー

プログラミングが全く未経験の人間が独学で学んだとして、それなりにプログラムができるようになるまで10年くらいでしょうか?それから在宅請負業務ができるまで、さらに5~10年くらいかなあ?

実際問題として、独学で学んだ開発実績ゼロなプログラマに、会社は仕事の依頼はしないでしょう。

QC++を本で独学してますが、配列とポインタでわからないところがあります。

現在C++を本で独学しており、ポインタの章を終えて配列の章を
学んでいるのですがでわからないところがあります。

『配列名は配列の先頭要素のアドレスをあらわす。』と習ったのですが、
下記のコードにての

#include <iostream>
using namespace std;

int main()
{
char str[] = "Hello";
cout << str << '/\';
return 0;
}

を実行すると"Hello"が出力されるとのことですが、
どうしてchar型配列strの要素をそのまま出力することになるのでしょうか?
この場合、『配列名は配列の先頭要素のアドレスをあらわす。』に
のっとれば出力されるのは「char型配列strの先頭要素のアドレス」に
なり、アドレスが出力されなければおかしいと思うのですが・・・?

同様に

#include <iostream>
using namespace std;

int main()
{
char* char = "Hello";
cout << str << '/\';
return 0;
}

のコードでもどうして間接参照演算子*さえ使わずに
strの要素を出力できるのかがさっぱりわかりません。

ご説明頂ければ幸いです。

現在C++を本で独学しており、ポインタの章を終えて配列の章を
学んでいるのですがでわからないところがあります。

『配列名は配列の先頭要素のアドレスをあらわす。』と習ったのですが、
下記のコードにての

#include <iostream>
using namespace std;

int main()
{
char str[] = "Hello";
cout << str << '/\';
return 0;
}

を実行すると"Hello"が出力されるとのことですが、
どうしてchar型配列strの要素をそのまま出力することになるのでしょうか?
この場合、『配列名は配列の先頭要素...続きを読む

Aベストアンサー

cout の << は。その後の型によって何を表示するかが変わります。
このような仕組をポリモーフィズムと言って、C++の重要な仕組の一つです。


他のポインタだと、そのアドレスを出力する、となっています。
対して、 char * だと「その示すアドレスから順番に、'\0'の前までの『文字』を出力する」となっています。

これは、以下のような理由があります。
・C++の元になったC言語では、「文字列型」というものが無く、「charの配列の先頭から'\0'の前までを文字列として扱う」というルールを使っている。
C++でも、そのルールを引き継いで、char * / char[] を文字列として扱うケースが多い。
・cout << にchar * を指定したとき、圧倒的に「文字列を出力したい」ケースが多い


アドレスを出力させたいのなら、char *でないポインタにキャストすることです。
そういう時は、汎用につかえる void * にキャストするのが常套手段です。

C言語由来の記法では (void * ) str と、(型)とします。
ですが、このキャストはなんでも有りすぎるので、C++ではC++専用のキャスト方法が用意されているので、そちらを使いましょう。
static_cast<void *>(str)

cout の << は。その後の型によって何を表示するかが変わります。
このような仕組をポリモーフィズムと言って、C++の重要な仕組の一つです。


他のポインタだと、そのアドレスを出力する、となっています。
対して、 char * だと「その示すアドレスから順番に、'\0'の前までの『文字』を出力する」となっています。

これは、以下のような理由があります。
・C++の元になったC言語では、「文字列型」というものが無く、「charの配列の先頭から'\0'の前までを文字列として扱う」というルールを使っている。
C++で...続きを読む

Q関数によって、MAX_PATHの値が異なる理由を教えてください。

MAX_PATHは260固定なのに、関数によって異なる理由を教えてください。

CreateFileは259文字まで、それ以上は関数が失敗します。
MakeSureDirectoryPathExistsは248文字まで、それ以上は関数が失敗します。
renameは220文字まで、それ以上は関数が失敗します。

Aベストアンサー

昔のファイルシステム(FAT)ではパス名の最長が255文字に制限されていました。
それに、ドライブレター等(C:¥)3文字とファイル名(8+3)の間のピリオド1文字で
255+3+1=259文字が最長パスです。
さらに、C言語で作成されたライブラリでは、
文字列の末尾にはNull文字(0x00)を付ける約束になっています。
それを含めて、MAX_PATH=260 となっています。
今どきのファイルシステム(NTFS)とはかなり違いますよね。
そんな訳で、時代とともに移り変わるシステムの中身が、
統一が取れているはずと思う方がおかしい。

QJSONについて JSONがいまいち理解できません。 調べてみるとデータ記述言語と書かれていました。

JSONについて

JSONがいまいち理解できません。
調べてみるとデータ記述言語と書かれていました。

VScodeの設定はJSONだったと思います。

ということはJSONは情報が書かれているということでいいのでしょうか??

分かりやすく説明していただけると助かります。

Aベストアンサー

{ キー : 値, キー : 値 }
という形式。

キーの値が配列だった場合は
{
 キー : 値,
 キー : [
  { キー : 値, キー : 値 },
  { キー : 値, キー : 値 }
 ]
}
とか。

QPythonをCentOSなどのサーバー上で動かしてスクレイピングする

Pythonを使ったスクレイピングの書籍はたくさんあるのですが、環境構築がmacOSだったりWindowsだったりします。クローラーなので、常時動かしておきたいのでレンタルサーバーなどで動かしておきたいのですが、どうすれば応用可能なのでしょうか?

そういったことも含めて解説がある書籍、サイトなどがあれば教えて欲しいです。
アドバイス欲しいです。Pythonに関しては初学者ですがよろしくお願いします。PHPみたいなイメージで、サーバー側に置いて使いたいです。

Aベストアンサー

常時かどうする環境についての質問ですかね?
であればVPSで良いと思いますけど。
CentOSで1コア2GBくらいなら月額1000円以内のサービスもあるでしょう。
AWSのLightsailでも1コア2GB60GBで10ドルです。
https://aws.amazon.com/jp/lightsail/pricing/

VPSを使って外為取引を24時間やるようなサイトならあるけど、VPSからスクレイピングまで書いてある書籍は無いのではないかな。。。
VPS自体は難しいものではないので、安いVPSの無料お試しサービスからはじめてみてはいかがでしょう。

Qスーパーハッカーやホワイトハッカーが未だにプログラムをキーボードを使ってアナログな入力を10年前と変

スーパーハッカーやホワイトハッカーが未だにプログラムをキーボードを使ってアナログな入力を10年前と変わらずに未だにガチガチキーパンチャーしてるのって一般人から見たら超絶ダサいらしいですよ。

マツコデラックスがスーパーハッカーがプログラムをキーボードで打っていたのを見て「まだキーボードで打ってるんだ。人工知能や音声を文字化出来るようになってるのに10年前と変わらずキーボードで打ってるの?!」と言っていましたが、本当にそうだなと思いました。

未だにキーボードでプログラミングしてるって古くさいというか自動化、自動化と言ってる割にプログラマーが1番アナログだったりして。

Aベストアンサー

それは普通の文章入力しか想像できない人の発想ですね。

プログラミング言語では記号を多用しますが、これをいちいちダブルコーテーションだのアットマークだの言うのは手間だし、実は記号じゃなくてダブルコーテーションは”じゃなくそのままダブルコーテーションっていう文字列にしたかったんだけど…みたいな区別に困ることもあります。その辺をきれいに解決する手段が今のところないってこと、また「キーボード入力の方が話すよりも速くてしかも正確に入力できる」と言う事実があること、またいちいち口に出すと言うことは意外に労力を要すること、といった事情から音声認識でどうにかしようという空気にならないのでしょう。

Qsleep関数の原理について

sleep関数がPC内でどういった原理で一定時間おきに動作などを行っているのか教えてください。
「Linuxカーネルがどういう働きしている」「ハードがどういう動作している」とかです。

Aベストアンサー

>一定時間おきに動作などを行っているのか
確実にsleep関数で指定した時間はお休みしているだけであり、
厳密には「一定時間おき」に動作はしません。

・LinuxはマルチタスクOSである
・一定時間(確か100Hzだったと思います)ごとにタスク切り換えを行っている

この2点がわかっていれば、
>「Linuxカーネルがどういう働きしている」
は簡単ですよね。

「sleep関数で指定した時間は、タスク切り換えで自分にCPU時間を割り当てることはしない」というだけです。

>「ハードがどういう動作している」
特段ハードでは、sleep関数実現のために何もしていません。

<おまけ>
sleep関数を呼ばなくてもマルチタスクOS上のタスクは、
 ユーザの知らないタイミングで休み休み動いている
ということです。

Qメモ帳のデータ保存してないのに停電でもとのデータに戻された・・・復元できないんでしょ!?停電のバカ野

メモ帳のデータ保存してないのに停電でもとのデータに戻された・・・復元できないんでしょ!?停電のバカ野郎

Aベストアンサー

復元はできないですね
むしろPCが壊れて元のデータさえ失われたことを考えれば
ラッキーだったと思うとよいでしょう

Q程度の低い質問で申し訳ないのですが、この写真の図3.15のアセンブラコードがよく分からないです。図の

程度の低い質問で申し訳ないのですが、この写真の図3.15のアセンブラコードがよく分からないです。図の左の説明のように簡単な配列を扱うアセンブラコードみたいなんですが、永遠にL1とL2を繰り返すだけのように思えるのですが、どういう順序で処理が行われるか教えてください。

Aベストアンサー

誤植でしょ。
このままだとL2の行が意味不明すぎです。

L1の位置がBRLTの行、L2がSTOREXの行だと思います。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

価格.com 格安SIM 料金比較