我正在嘗試提取測驗資料 1 的值
目前有..
(?<=(?i)Test Data1)(.*)[^|\n]
(?<=(?i)Test Data1)[)?]*[^\n]
(?<=(?i)Test Data1)[\s:?](.*)[^\n]
情況1。\n測驗資料 1:{1、2、3}\n測驗資料 2:{4、5、6}\n
案例#2。\n測驗資料 1 {1, 2, 3}\n測驗資料 2 {4, 5, 6}\n
案例#3。\n測驗資料 1:\n{1、2、3}\n測驗資料 2:{4、5、6}\n
案例#4。\n測驗資料1\n{1, 2, 3}\n測驗資料2 {4, 5, 6}\n
當前的正則運算式我回傳 case #1 和 #2 很好,但是由于 case#3 和 case#4 在 {1, 2, 3} 之前有一個額外的 \n,我的正則運算式失敗了。
在上述 4 種情況下,是否有更好/改進的正則運算式,我總是只能獲得測驗資料 1 的值 {1, 2, 3} ?
uj5u.com熱心網友回復:
如果 #4 你有
(?<=(?i)Test Data1)[\s:?](.*)[^\n]
您的意圖是在 之后有一個可選的空格或冒號Test Data1嗎?那將是
[\s:]?
但是你有
[\s:?]
這意味著“空格或冒號或問號”,它不是可選的。
uj5u.com熱心網友回復:
就是這個,你想要的結果
Test Data1:?\n?\s?(\{\d ,\s \d ,\s \d \})
uj5u.com熱心網友回復:
您可以使用
(?i)Test Data1[\s:]*\K.*
請參閱正則運算式演示。詳情:
(?i)- 不區分大小寫匹配開啟Test Data1- 文字[\s:]*- 零個或多個空格和:字符\K- 省略到目前為止匹配的所有文本.*- 匹配當前行直到結束(.匹配除換行符以外的任何字符)
根據正則運算式的風味,您還可以使用
(?i)Test Data1[\s:]*\K.*
(?i)(?<=Test Data1[\s:]*).*
(?i)Test Data1[\s:]*(.*)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/401076.html
標籤:正则表达式
下一篇:替換R中字串末尾的點
