Saya punya sepotong teks:

"text 1

Sentence 1."*"the (1)
 /ðiː/

Sentence 1 Translated."
"text 2

Sentence 2."*"of (2)
 /əv/

Sentence 2 Translated."
"Text 3

Sentence 3!"*"and (3)
 /ænd/

Sentence 3 Translated!"

Cara mendapatkan nilai dalam pembagian seperti itu dari " ke " terdekat Dapatkan semuanya sebagai koleksi

"text 1

Sentence 1."*"the (1)
 /ðiː/

Sentence 1 Translated."

Saya mencoba ini, tetapi tidak berhasil:

"(.*?)""
1
startNet 14 Agustus 2019, 10:31

1 menjawab

Jawaban Terbaik

Dilihat dari contoh string Anda, Anda perlu mendapatkan substring dari " yang merupakan karakter pertama pada baris hingga " pertama yang mengakhiri baris.

Jika Anda memiliki teks di dalam satu variabel, katakan text, Anda dapat menggunakan

var results = Regex.Matches(text, @"(?sm)^("".*?"")\r?$")
        .Cast<Match>()
        .Select(m => m.Groups[1].Value);

Lihat demo regex

Detail pola

  • (?sm) - RegexOptions.Singleline dan RegexOptions.Multiline aktif
  • ^ - awal baris a
  • ("".*?"") - Grup 1: ", 0+ karakter apa pun tetapi sesedikit mungkin, dan "
  • \r? - CR opsional (karena $ tidak cocok sebelum CR)
  • $ - akhir baris.
1
Wiktor Stribiżew 14 Agustus 2019, 07:53