2017-07-28 37 views
0

我創建了正則表達式來對我需要收集的數據進行分組。不過,我真的失去了如何去出口這個。如何將正則表達式導出爲CSV並確保每個分組進入正確的列?

這裏是我做了什麼https://regex101.com/r/C7KvkH/5

我下一步需要做的是有4列在電子表格中,如LibreOffice的電子表格或谷歌表。所以我需要的數據對應以下列:

'頻率'組1 - 第一列,'字'組2 - 第二列,'性別'組3 - 第三列,'句子'組4 - 第四列

我將這些數據保存到文本文件,然後將其更改爲CSV文件嗎?

我需要創建標籤嗎?

我該如何去做呢?

+0

我想你想要這個https://regex101.com/r/C7KvkH/6。但是,這也適用https://regex101.com/r/PJfxQf/1 – sln

+1

歡迎在這裏與活的正則表達式測試人員聯繫,但也請在問題中顯示錶達式。沒有這一點,如果鏈接死亡,問題也會消失,並且將不得不被刪除。 – halfer

+0

感謝halfer。我已經取得了一些進展,並將其擴展以查看它是否正常工作https://regex101.com/r/C7KvkH/12。不過,我對第一組有一點小小的興趣。 'el,la'應該都在第2組中,'藝術'應該是第3組。似乎逗號和空格正在導致問題。任何想法如何解決這個問題?謝謝。 ([0-9] +)\ S +(\ W + ,?)\ S +(\ W +)。*嗎?\ r嗎?\ n•\ S +([\ s \ S] *?)\ S + [0-9] + \ s \ |。* \ s * – user8383901

回答

0

我已經擴展了我爲第二個問題/文本樣本(法文)提供的模式。

此模式適用於您的兩個示例文本(法語和西班牙語)。它根據你的第二個問題提供了五個捕獲組。

/^(\d+) +(\w+(?:, ?\w+)*) +([acdefijlmnoprtuv()]+(?:, ?[acdefijlmnoprtuv()]+)*) +([\S\s]+?)\n\x{2022} +([\S\s]+?)\n\d+ \| [-+\dno ]+\s*/um 

Demo Link

見我的話在the other answer

調整到我的其他圖案:

  • 擴展第二捕獲組以允許逗號分隔值。例如el, la
  • 添加u到捕獲組3的字符類(#56 &#72)
  • 擴展最後一個字符類[-+\dno ]爲出現像文本塊#8。

使用這種模式與preg_replace()執行所需的黏合後,您可以使用CSV功能php的菜單,以生產出您需要的文件。

+0

剛剛注意到您對這個問題的回答。非常感謝您的幫助,非常感謝。 – user8383901