我在弄清楚如何检查该行是否包含破折号(-
)然后捕获其中的一部分时遇到了一些麻烦。
这是我可以作为输入的字符串示例:
abc,xyz,ijk-a,opq
abc,xyz,ijk,opq
我想提取破折号之前的部分,如果它存在的话,即ijk
. 如果没有破折号,我只想要ijk
(如第二个字符串所示)。
以下正则表达式使用带有前瞻断言的 if 条件并完成这项工作,但始终生成一个空组,如此处Regex code here所示。我希望只有一个捕获组返回ijk
。
我认为正则表达式 if 条件只会返回 if 或 else 条件的组,而不是两者。
.*,(?(?=.*?-.*?)(.*?)-.*?|(.*?)),
谢谢