我有以下文字:
J.smith (2022-05-02 01:22:02) Hi There,
How are you doing today
Just wanted to check in
Bobby123 (2022-05-02 07:39:00):Hello ,
Im doing good thank you for asking
Thanks!
我想要三個命名的名稱、時間和文本捕獲組:
Bobby123
2022-05-02 01:22:02
Hello ,
Im doing good thank you for asking
Thanks!
我的主要問題是嘗試為文本創建一個命名的捕獲組。我嘗試過的每個正則運算式都會捕獲文本的所有內容,但是文本組在到達 Bobby123 的第二個命名捕獲組(名稱)后應該停止。
這是我到目前為止所擁有的:
(?<by>([\S] )) \((?<time>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})\)\:
https://regex101.com/r/VCIUH9/1
uj5u.com熱心網友回復:
您可以使用
(?<by>\S ) \((?<time>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})\):\s*(?<text>.*(?:\n(?!\S \(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\):).*)*)
請參閱正則運算式演示。
詳情:
(?<by>\S )- 分組“by”:一個或多個非空格\(- 一個空間和((?<time>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})- 日期時間模式\):- 一個)和:\s*- 零個或多個空格(?<text>.*(?:\n(?!\S \(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\):).*)*)- 組“文本”:.*- 線路的其余部分(?:\n(?!\S \(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\):).*)*- 零行或多行不以任何單詞、一個空格、日期時間模式和):字串開頭。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/491491.html
標籤:正则表达式
