用于修剪前导/尾随逗号的正则表达式:aa,bb,cc,

时间:2012-02-12 21:40:54

标签: regex trim

我正在尝试从以下字符串中捕获aa,bb,cc

,aa,bb,cc,
aa,bb,cc,
,aa,bb,cc
aa,bb,cc

我的计划是:

  1. 匹配行锚点的开头,或锚点后跟逗号
  2. 捕获直到行锚定结束,或者使用逗号后跟行结束
  3. 我最接近的是:(?:^,|^)(.*)(?:$|,$),但这包括捕获组中的尾随逗号:

    ,aa,bb,cc, -> aa,bb,cc,
    aa,bb,cc,  -> aa,bb,cc,
    ,aa,bb,cc  -> aa,bb,cc
    aa,bb,cc   -> aa,bb,cc
    

    为什么它不起作用,什么是正确的解决方案?

2 个答案:

答案 0 :(得分:2)

试试这个

^,*(?<trimmed>.*?),*$

答案 1 :(得分:1)

这似乎有效: ^,*(.*?),*$

关键的想法是懒惰的明星*?,因为我希望尾随逗号(甚至多个尾随逗号,我假设)与最后一个,*匹配,而不是在括号内匹配