我需要在某些條件下提取兩個數字:累積地,第一個數字后面需要跟 a /A,第二個后面必須跟 a B。例如:
30A/305B: 30 和 305 都必須回傳;30/305B: 30 和 305 都不會回傳;30A/305: 30 和 305 都不會回傳;
根據這里,我嘗試了下面的正則運算式但沒有成功:
(\d (?=A\/))(\d (?=B))
我該如何完成?我正在使用 R 和選項perl = TRUE。
uj5u.com熱心網友回復:
該模式(\d (?=A\/))(\d (?=B))匹配 1 個或多個數字,并A/直接在左側斷言(不匹配)。
第一個斷言將是真的,但是在這個斷言之后,第二部分再次以匹配 1 個或多個數字開始。
這是行不通的,因為之前的斷言只是斷言有 A/
您不需要任何環視或 perl = TRUE,您可以改用 2 個捕獲組:
(\d )A/(\d )B
正則運算式演示
str <- "30A/305B: both 30 and 305 must be returned;"
str_match(str, "(\\d )A/(\\d )B")
輸出
[,1] [,2] [,3]
[1,] "30A/305B" "30" "305"
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/316085.html
上一篇:正則運算式后視回傳無型別
下一篇:通過派生規則查找正則運算式的語言
