Jadual Kandungan
Kandungan soalan
Penyelesaian
Rumah pembangunan bahagian belakang Golang fungsi split ekspresi biasa python setara dalam golang

fungsi split ekspresi biasa python setara dalam golang

Feb 13, 2024 pm 07:45 PM
tatasusunan rentetan

python 正则表达式 split 函数在 golang 中等效

Dalam bidang pengaturcaraan, ungkapan biasa ialah alat yang berkuasa untuk memadankan dan memproses rentetan. Dalam Python, fungsi split ialah fungsi ungkapan biasa yang biasa digunakan untuk memisahkan rentetan kepada subrentetan. Walau bagaimanapun, bagi pembangun yang menggunakan Golang, mereka mungkin tertanya-tanya bagaimana untuk mencapai fungsi yang sama dalam Golang sebagai fungsi split dalam Python. Dalam artikel ini, editor PHP Zimo akan memperkenalkan anda kepada cara menggunakan fungsi pemisahan ungkapan biasa secara setara di Golang untuk menggunakan alat berkuasa ini dengan lebih baik.

Kandungan soalan

Saya mempunyai kod python berikut untuk dipadankan dengan ungkapan biasa::

import re
digits_re = re.compile("([0-9ee.+]*)")

p = digits_re.split("hello, where are you 1.1?")

print(p)
Salin selepas log masuk

Ia memberikan output ini:: ['', '', 'h', 'e', '', '', 'l', '', 'l', '', 'o', '', ',', '', ' '、''、'w'、''、'h'、'e'、''、''、'r'、'e'、''、''、' '、''、'a' , '', 'r', 'e', '', '', ' ', '', 'y', '', 'o', '', 'u', '', ' ', '1.1 ', '', '', '?', '', '']

Saya cuba mendapatkan output di atas menggunakan golang.

package main

import (
    "bytes"
    "fmt"
    "log"
    "os/exec"
    "regexp"
    "strconv"
)

func main() {
    // execute the command and get the output
    cmd := exec.command("echo", "hello, where are you 1.1?")
    var out bytes.buffer
    cmd.stdout = &out
    err := cmd.run()
    if err != nil {
        log.fatal(err)
    }

    // extract the numerical values from the output using a regular expression
    re := regexp.mustcompile(`([0-9ee.+]*)`)
    //matches := re.findallstring(out.string(), -1)
    splits := re.split(out.string(), -1)
    fmt.println(splits)

}
Salin selepas log masuk

Saya mendapat output berikut::

[H l l o ,   w h r   a r   y o u   ? 
]
Salin selepas log masuk

Saya rasa ungkapan biasa bergantung kepada bahasa, jadi fungsi split() yang digunakan dalam python tidak membantu split() 函数对 golang 没有帮助。使用了 regexp 包中的多个 find*(). Menggunakan beberapa fungsi find*() daripada pakej regexp, tetapi tidak dapat mencari fungsi yang akan memberikan output program python di atas.

Matlamat untuk mengeluarkan tatasusunan rentetan adalah untuk memisahkan aksara yang tidak boleh ditukar kepada float dan jika rentetan itu boleh dihuraikan sebagai apungan, saya mengira purata bergerak.

Akhir sekali, saya menggabungkan semuanya dan membentangkan output seperti arahan linux watch.

Adakah anda memerlukan butiran lanjut/latar belakang? Saya gembira untuk berkongsi.

Terima kasih banyak atas bantuan anda!

Penyelesaian

Sementara itu, saya mendapat sesuatu yang sesuai untuk bekas penggunaan saya. Ia bukan format yang sama seperti python , tetapi tidak mempunyai rentetan/karakter kosong.

Saya menggunakan fungsi splitfindallstring untuk mendapatkan output yang diingini.

// unfortunately go regex split doesn't work like python
    // so we construct the entire array with matched string (numericals)
    // and the split strings to combine the output
    splits := digitsre.split(string(out), -1)
    matches := digitsre.findallstring(string(out), -1)

    p := []string{}
    for i := 0; i < len(splits); i++ {
        p = append(p, matches[i])
        p = append(p, splits[i])
    }
Salin selepas log masuk

Dengan coretan kod di atas, saya mendapat sesuatu seperti ::

[H e l l o ,   w h e r e   a r e   y o u  1.1 ?]
Salin selepas log masuk

Saya tidak begitu mahir dalam regex, dan entah bagaimana kaedah di atas berfungsi untuk kes penggunaan saya.

Secara ringkasnya, saya mendengar rakan sekerja saya bergurau bahawa jika anda menyelesaikan masalah dengan bantuan regex, anda akan menghadapi dua masalah! ! !

Atas ialah kandungan terperinci fungsi split ekspresi biasa python setara dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menggunakan fungsi split() dalam oracle Cara menggunakan fungsi split() dalam oracle May 07, 2024 pm 01:06 PM

Fungsi SPLIT() membahagikan rentetan kepada tatasusunan dengan pembatas yang ditentukan, mengembalikan tatasusunan rentetan di mana setiap elemen ialah bahagian yang dipisahkan pembatas bagi rentetan asal. Penggunaan termasuk: membahagikan senarai nilai yang dipisahkan koma kepada tatasusunan, mengekstrak nama fail daripada laluan, dan membahagikan alamat e-mel kepada nama pengguna dan domain.

Bagaimana untuk mengisih rentetan dalam java Bagaimana untuk mengisih rentetan dalam java Apr 02, 2024 am 02:18 AM

Cara untuk mengisih rentetan dalam Java: Gunakan kaedah Arrays.sort() untuk mengisih tatasusunan rentetan dalam tertib menaik. Gunakan kaedah Collections.sort() untuk mengisih senarai rentetan dalam tertib menaik. Gunakan antara muka Pembanding untuk menyusun rentetan tersuai.

Apakah maksud \0 dalam bahasa c Apakah maksud \0 dalam bahasa c Apr 27, 2024 pm 10:54 PM

Dalam bahasa C, \0 ialah tanda akhir rentetan, dipanggil aksara nol atau penamat. Memandangkan rentetan disimpan dalam ingatan sebagai tatasusunan bait, pengkompil mengecam penghujung rentetan melalui \0, memastikan rentetan dikendalikan dengan betul. \0 Cara ia berfungsi: Pengkompil berhenti membaca aksara apabila ia menemui \0 dan aksara seterusnya diabaikan. \0 sendiri tidak menduduki ruang storan. Faedah termasuk pengendalian rentetan yang boleh dipercayai, kecekapan yang dipertingkatkan (tidak perlu mengimbas keseluruhan tatasusunan untuk mencari penghujungnya), dan kemudahan perbandingan dan manipulasi.

Apakah maksud args dalam java Apakah maksud args dalam java May 07, 2024 am 02:24 AM

args ialah tatasusunan parameter khas kaedah utama dalam Java, digunakan untuk mendapatkan tatasusunan rentetan parameter baris arahan atau input luaran. Dengan mengakses tatasusunan args, atur cara boleh membaca hujah ini dan memprosesnya mengikut keperluan.

Apakah maksud args dalam java Apakah maksud args dalam java Apr 25, 2024 pm 10:15 PM

args bermaksud argumen baris arahan dalam Java dan merupakan tatasusunan rentetan yang mengandungi senarai argumen yang dihantar kepada program apabila ia dimulakan. Ia hanya tersedia dalam kaedah utama, dan nilai lalainya ialah tatasusunan kosong, dengan setiap parameter boleh diakses oleh indeks. args digunakan untuk menerima dan memproses argumen baris arahan untuk mengkonfigurasi atau menyediakan data input apabila program bermula.

Bagaimana untuk mengisih aksara Cina dalam persekitaran bahasa C? Bagaimana untuk mengisih aksara Cina dalam persekitaran bahasa C? Feb 18, 2024 pm 02:10 PM

Bagaimana untuk melaksanakan fungsi pengisihan aksara Cina dalam perisian pengaturcaraan bahasa C? Dalam masyarakat moden, fungsi pengisihan aksara Cina adalah salah satu fungsi penting dalam banyak perisian. Sama ada dalam perisian pemprosesan perkataan, enjin carian atau sistem pangkalan data, aksara Cina perlu diisih untuk memaparkan dan memproses data teks Cina dengan lebih baik. Dalam pengaturcaraan bahasa C, bagaimana untuk melaksanakan fungsi pengisihan aksara Cina? Satu kaedah diperkenalkan secara ringkas di bawah. Pertama sekali, untuk melaksanakan fungsi pengisihan aksara Cina dalam bahasa C, kita perlu menggunakan fungsi perbandingan rentetan. Berlari

Apakah kesan fungsi C++ terhadap prestasi program? Apakah kesan fungsi C++ terhadap prestasi program? Apr 12, 2024 am 09:39 AM

Kesan fungsi pada prestasi program C++ termasuk overhed panggilan fungsi, pembolehubah tempatan dan overhed peruntukan objek: Overhed panggilan fungsi: termasuk peruntukan bingkai tindanan, pemindahan parameter dan pemindahan kawalan, yang mempunyai kesan ketara pada fungsi kecil. Overhed pembolehubah tempatan dan peruntukan objek: Sebilangan besar pembolehubah tempatan atau penciptaan objek dan pemusnahan boleh menyebabkan limpahan tindanan dan kemerosotan prestasi.

Di manakah titik permulaan program bahasa C? Di manakah titik permulaan program bahasa C? Feb 20, 2024 pm 12:12 PM

Apakah titik permulaan untuk menjalankan program bahasa C? Bahasa C, sebagai bahasa pengaturcaraan peringkat tinggi, adalah salah satu bahasa pengaturcaraan yang paling biasa digunakan. Dalam proses pembelajaran bahasa C, ramai orang akan keliru tentang titik permulaan menjalankan program C. Jadi, apakah titik permulaan untuk menjalankan program bahasa C? Jawapannya adalah fungsi utama. Dalam program bahasa C, pelaksanaan program bermula dari permulaan fungsi utama. Fungsi utama ialah titik masuk program bahasa C dan fungsi pertama yang ditakrifkan oleh pengaturcara untuk dilaksanakan. Fungsi utamanya adalah untuk menentukan proses

See all articles