Regex 正则表达式要修剪前导/尾随逗号:,aa,bb,cc,

Regex 正则表达式要修剪前导/尾随逗号:,aa,bb,cc,,regex,trim,Regex,Trim,我试图从以下字符串中捕获aa、bb、cc: ,aa,bb,cc, aa,bb,cc, ,aa,bb,cc aa,bb,cc 我的计划是: 匹配线锚点的开头,或锚点后跟逗号 捕捉到线结束锚定点,或在线结束锚定点后加逗号 我得到的最接近的是:(?:^,|^)(.*)(?:$,$),但这包括捕获组中的尾随逗号: ,aa,bb,cc, -> aa,bb,cc, aa,bb,cc, -> aa,bb,cc, ,aa,bb,cc -> aa,bb,cc aa,bb,cc ->

我试图从以下字符串中捕获
aa、bb、cc

,aa,bb,cc,
aa,bb,cc,
,aa,bb,cc
aa,bb,cc
我的计划是:

  • 匹配线锚点的开头,或锚点后跟逗号
  • 捕捉到线结束锚定点,或在线结束锚定点后加逗号
  • 我得到的最接近的是:
    (?:^,|^)(.*)(?:$,$)
    ,但这包括捕获组中的尾随逗号:

    ,aa,bb,cc, -> aa,bb,cc,
    aa,bb,cc,  -> aa,bb,cc,
    ,aa,bb,cc  -> aa,bb,cc
    aa,bb,cc   -> aa,bb,cc
    
    为什么它不起作用,什么是正确的解决方案?

    试试这个

    ^,*(?<trimmed>.*?),*$
    
    ^,*(?*?)*$
    
    试试这个

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

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

    这似乎可行:
    ^,*(.*),*$


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

    您可能可以使用语言的
    trim()
    方法(或等效方法)来实现这一点。当然,jQuery和PHP可以从字符串中获取一个要修剪的字符参数(例如
    $str=trim($str,,')
    ),您可能可以使用语言的
    trim()
    方法(或等效方法)来实现这一点。当然,jQuery和PHP可以从字符串中提取一个字符参数(例如
    $str=trim($str,,')
    ),但是,我通常不会使用正则表达式来实现这一点。正如Joe提到的,大多数语言已经有了某种
    trim
    函数。尤其不是JavaScript,除非您使用的是一个有JavaScript的框架。但是,我通常不会使用正则表达式。正如Joe提到的,大多数语言已经有了某种
    trim
    函数。尤其不是JavaScript,除非你使用的是一个有JavaScript的框架。谢谢,明白了。对于其他正在阅读的人来说,
    显然是。嘿,如果我识别了命名组语法,我会意识到我后来的答案与此完全相同。:)谢谢,明白了。对于其他正在阅读的人来说,
    显然是。嘿,如果我识别了命名组语法,我会意识到我后来的答案与此完全相同。:)