我在計算如何檢查行是否包含短劃線(-
)並捕獲其中的一部分時遇到了一些麻煩。想要檢查一個字符串是否包含 -
這裏是我可以有輸入字符串的例子:
abc,xyz,ijk-a,opq
abc,xyz,ijk,opq
我想破折號之前提取的部分,如果它的存在,即ijk
。 如果沒有短劃線,我只想ijk
(如第二個字符串所示)。
以下正則表達式在使用前瞻斷言的情況下使用並執行作業,但始終生成一個空組,如Regex code here所示。 我想只有一個捕獲組返回ijk
。
我認爲,正則表達式如果條件只會返回if或else條件的組,而不是兩者。
.*,(?(?=.*?-.*?)(.*?)-.*?|(.*?)),
感謝
看到另一個答案後,我意識到我需要澄清。逗號分隔的字符串全部在一行上,並且您可以始終在每個字符串之後有一個選項 - 什麼東西? – DWright