簡體   English   中英

如何使用C#正則表達式模式提取所需的組

[英]How to extract required groups using C# Regular Expression pattern

我正在學習正則表達式。 我正在嘗試使用以下正則表達式

^(?<type>\W?\w+)(?<middle>\s\w+)?\s(((?<seconds>\d+)[s-]?)?)\s?(?<body>.+?)$

我嘗試匹配的示例字符串是

IDCH測試15s發現Spring Love,您會發現Quelle機會! Fevr16

我想要以下輸出:

類型:IDCH

中:測試tes

秒:15s

身體:發現.....

我沒有使用上述模式得到預期的輸出。 任何人都可以幫助解決我的正則表達式模式的問題嗎?

這是我當前正在得到的:類型:IDCH

中:測試

秒:

身體:tes 15s ........

謝謝

要解析您非常具體的輸入字符串,這對我有用:

^(?<type>\W?\w+)(?<middle>(\s\D+)*)?\s(?<seconds>\d+s)?\s?(?<body>.+?)$

使用\\D時,中間部分會捕獲除數字以外的所有亂拋垃圾

(?<middle>(\s\D+)*)?

這使秒有機會將數字與\\ d +匹配

(?<seconds>\d+s)?

編輯:

提取秒數,您應該尋找一個以空格開頭並直接跟有s

^(?<type>\W*\w*)(?<middle>(\s\w+)*)(?<seconds>\s\d+s)\s(?<body>.+?)$

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM