我需要一個正則表達式,它返回一個特定的字母和下一個(一個或兩個)數字,直到下一個字母。 例如,我想提取多少個碳(C)中的R使用正則表達式是公式中正則表達式,返回特定字母后面的數字直到下一個字母
strings <- c("C16H4ClNO2", "CH8O", "F2Ni")
我需要返回其可以是一個或2個數字和C的數的表達式氯(Cl)後不返回數字。
substr(strings,regexpr("C[0-9]+",strings) + 1, regexpr("[ABDEFGHIJKLMNOPQRSTUVWXYZ]+",strings) -1)
[1] "16" "C" ""
,但我想返回的答案是
"16","1","0"
此外,我想正則表達式自動查找下一個字母和前停下來,而不是有一個最終位置,我指定爲一個字母不是一個C.
是否爲正則表達式的要求?有更簡單的解決方案,但它們的適用性取決於你真正的問題。最簡單的方法是在記事本++中打開文本,打開搜索窗口類型C並單擊計數 - 您可以在那裏設置更多規則,如果真的需要,可以在那裏使用正則表達式;對於軟件類型的應用程序我會使用python,閱讀var中的所有文本,然後在var – Drako
中尋找一些東西對不起 - 可能被誤解的問題 – Drako
你可以檢查regex101.com並在那裏測試,但只是建議而不是整個字母表,你可以使用[AZ ]或[a-zA-Z]如果小寫字母也包括數字是\ d因此C \ d +會找到您需要的所有信息 – Drako