我有些困惑,如何检查一行中是否包含破折号(-
),然后捕获其中的一部分。
以下是可能作为输入的字符串示例:
abc,xyz,ijk-a,opq
abc,xyz,ijk,opq
我希望提取破折号前的部分,如果有破折号,即
ijk
。
如果没有破折号,我只想要ijk
(如第二个字符串所示)。以下正则表达式使用lookahead断言的if条件并完成了工作,但总是生成一个空组,如此示例Regex code here所示。 我只想要一个捕获组返回
ijk
。我认为,正则表达式中的if条件只会返回if或else条件的组,而不是两者都返回。
.*,(?(?=.*?-.*?)(.*?)-.*?|(.*?)),
谢谢