• 締切済み

「python 文字列の切り取り」について教えてください

現在、学校のほうでpythonを使っているんですが、文字列の部分切り取りという方法がよくわりません。 切り取りの例としては ipfw add allow icmp from 1.2.3.0/24 to any icmptypes 0 ipfw add allow icmp from 1.2.3.0/24 to any icmptypes 0,4,18 という文字列がそれぞれあったら 上の文字列なら『0』、下の文字列なら『0,4,18』の部分だけ取り出すといった感じです

みんなの回答

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

もうちょっと具体的に規則がわからないとなんともいえませんよ。 ipfw add allow icmp from 1.2.3.0/24 to any icmptypes の部分が全部一緒なら、 str[53:] でとれます。 Python 2.6b2 (r26b2:65106, Jul 18 2008, 18:22:27) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> str = "ipfw add allow icmp from 1.2.3.0/24 to any icmptypes 0" >>> str 'ipfw add allow icmp from 1.2.3.0/24 to any icmptypes 0' >>> len(str) 54 >>> str[53:] '0' >>> str = "ipfw add allow icmp from 1.2.3.0/24 to any icmptypes 0,4,18" >>> str[53:] '0,4,18' >>> アドレス部分(1.2.3.0/24) が変動するのなら、正規表現を使うとかでしょうか。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Pythonで変数自体を文字列として扱うには

    Pythonで変数自体を文字列として扱う関数はありますか? 以下は、xがそのような関数である場合の例です。 python = 123 >>>print python >>>123 >>>print x(python) >>>python

  • Pythonでの文字列の操作

    とあるデータをPythonを使って整形したいのですが、文字列の操作でつまずいて居りますのでご教示いただけたらと思います。 編集したい文字列は以下のように"|"(パイプ)で7つのカラムに区切られています。 1|Jun 19, 2014 06:00:15.586099000|192.168.100.225|62763|192.168.100.255|8612|60 2|Jun 19, 2014 06:00:20.636389000|192.168.11.100|1900|249.255.255.250|1900|332 3|Jun 19, 2014 06:00:20.636879000|192.168.11.100|1900|219.255.255.250|1900|323 4|Jun 19, 2014 06:00:20.636879000|192.168.11.100|1900|209.255.255.250|1900|397 … 2行目が日付と時刻を示していることが分かるかと思います。それ以外の行の意味は気にしなくて結構です。 私が変更したいのは2行目のみで、以下のように変更したいのです。 1|Jun 19, 2014|06|192.168.100.225|62763|192.168.100.255|8612|60 2|Jun 19, 2014|06|192.168.11.100|1900|249.255.255.250|1900|332 3|Jun 19, 2014|06|192.168.11.100|1900|219.255.255.250|1900|323 4|Jun 19, 2014|06|192.168.11.100|1900|209.255.255.250|1900|397 … このように、日付と時間をパイプで区切り、更に時刻の部分の「分」以下の部分を削除したいのです。 上のデータをファイル入力として、下のデータをファイル出力したいのですが、いろいろ調べてもなかなか実現できません。 どのようなPythonスクリプトを書けばよいのか教えていただけたらと思います。 解説サイト等を紹介してくださっても嬉しいのですが、より具体的なコードを書いてくださった方にベストアンサーにさせていただこうと思います。

  • PythonでDLLからの戻り値で文字列の場合を正しく表示させたい

    VisualStudio2005でDLLを作成して、Python2.6のctypesモジュールを使って、PythonからC++のルーチンを呼び出す際に、文字列を引数として、文字列を戻り値として使えるようにC++を記述したいのですがどうすればよいのでしょうか? 関数呼び出しは __stdcallです。 __declspec(dllexport) unsigned char* __stdcall Test(const char *s, int n); とした場合、Pythonで戻り値を見るとint型の数値でした。 from ctypes import * lib = windll.LoadLibrary("test.dll") s = lib.Test("abcdefghijk", 3) print s

  • Perlで文字列の切り出しをするには?

    おせわになります。 Perlであるパターン間の文字列を取り出す方法はあるのでしょうか?例えば、"Monday<From>Thursday<To>Friday"という文字列の<From>~<To>間、つまり"Thursday"を取り出したいのですが、うまくいきません。 できればパイプでつないでいくために、以下のような正規表現でかければ最高なのですが… echo 'Monday<From>Thursday<To>Friday' | perl -e '○○○○' もう1週間以上ここではまっています。Perlってはまると長いです…

    • ベストアンサー
    • Perl
  • データファイル中の文字列をランダムに取得する方法

    あるデータファイル中に以下のようなデータがあります。 >1234 adjaiubgubmcauouamaouagamouaucamougauyouajmouaguau zadaaboueroauahcaoqqpeuaoqueiiulgjaogahiapnnfaugao ・ ・ >1235 ajfaoufaobayanfaggsofudjjmlacxaoueytiaulmfglaguaou agaohghmfjghucpoepppppfagaaewetfhafhdaugyaiygyaygi ・ ・ >1236 ・ ・ 「>・・」はそれ以下の文字列のIDをあらわしています。各文字列はそれぞれIDを持っています。IDごとに30文字の文字列を(ランダムに)x回抽出するプログラムを教えてください。考えているうちにぜんぜんわからなくなりました。取得した文字列は元のデータファイル中に以下のように上書きをしたいです。「>」以下にはその文字列を取得したIDとそのID内のデータの何行目から何行目までのデータを取得したかを表す タグがほしいです。そのような仕様の文字列取得作業を全部でランダムにX回したいと考えております。以下の実行例のように取得する文字列は一部かぶってもぜんぜん結構です。 昨日から考えていますが、限界に来ました。 長い説明になって申し訳ございませんが、よろしくお願いします。 ≪元のデータファイルに上書きされた実行例≫ >1234from1to30 adjaiubgubmcauouamaouagamouauc >1236from51to81 aijewqmikfugpoirexcxgragukgewj >1235from47to77 guauzadaaboueroauahcaoqqpeuaoq ・ ・

    • ベストアンサー
    • Perl
  • Apple Script の文字列中に『”』を使う

    Apple Script の文字列のなかに、ダブルクオート「"」を含めるにはどうしたらよいのでしょうか? 例: set TEST_TEXT to ”文字列" の、文字列にダブルクオートを入れたいのです。

    • ベストアンサー
    • Mac
  • VBAで指定した「文字数」だけ切り取りしたい

    1行に文字数不定(3159~81文字)で270行ほどデータがプロットされています。 カンマを区切り文字にして区切りたいのですが、Excelの仕様の列数をオーバーしてしまうので一行のデータを固定した数で切り取って、別なシートに貼り付けて横方向の長さを削減したデータの形に持っていきたいと思っています。 固定長の文字列だけ切り取り→別シートに貼り付け→また切り取り→別シートの次の行に貼り付けというしょりを繰り返したいのですが肝心の切り取りの部分のコードでエラーが出てしまいます。 Dim Cutter As String 中略 sheet1.cells(1,1).Len(Cutter,81).Cut 中略 End Sub エラーの内容を見る限り、Len関数がCutメソッドをサポートしていないということらしいのですが、決まった文字数だけ切り取るには他に表現できないものでしょうか?

  • C++で文字列の右端から特定の文字までの文字列を

    C++で文字列の中から,文字列の右端から特定の文字までの文字列を取り出すというものを作りたいと思っています。 右端から○文字取り出す。といった感じのコードは書けるのですが、特定の文字まで、というのがどうもうまくいきません。こちら、良いアドバイスをいただける方がいましたらよろしくお願いします。 例:ファイル名を抽出 文字列\system32\notepad.exeからnotepad.exeの部分だけを取り出したい。というものです。 初めに見つけた\まで取り出す・・とやればよいのでしょうが、その方法が今ひとつ良くわからないので、どうかご助力お願いいたします。

  • Excel VBA セル内の文字列操作について

    例えば、A列(A2より下のセル)のセル内にある文字列が、それぞれ対応するB列(B2より下のセル)のセル内にあった場合、該当文字列のフォントの色を変えたい(例えば「赤」)のですが、VBAで一括処理とかできるのでしょうか? <例> A列      B列 テスト     このテストは・・・ → 「テスト」の部分のみ赤色にしたい。 サンプル   サンプル     → 文字列全部分の「サンプル」を赤色にしたい。 どうかご教示の程よろしくお願いいたします。

  • 文字列を抜き出してきてファイルを生成

    当方はC++を用いております。文字列の部分列にアクセスして、 それを新たに文字列としたいのですが、可能でしょうか? 具体的には、英数字、空白のみからなるレコードがあったとします。 例: 01 po 0979876 7行目から10行目までをとりだします。 0979 これをひとつの文字列とします。 なお、目的は、0979という名のファイルを作ることです。