fungsi split ekspresi biasa python setara dalam 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)
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) }
Saya mendapat output berikut::
[H l l o , w h r a r y o u ? ]
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 split
和 findallstring
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]) }
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 ?]
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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

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.

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.

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.

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.

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 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

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.

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
