【问题标题】:Split string content by parenthesis用括号分割字符串内容
【发布时间】:2016-03-04 03:19:08
【问题描述】:

我有一个这样的字符串:

Adam Nguyen(adamnguyen)

获取两个字符串"Adam Nguyen""adamnguyen" 的最佳方法是什么?

【问题讨论】:

    标签: ruby string split


    【解决方案1】:
    "Adam Nguyen(adamnguyen)".split(/[()]+/)
    # => ["Adam Nguyen", "adamnguyen"]
    

    【讨论】:

    • 我尝试了.split(/[()]/),仍然得到相同的结果。您能解释一下+ 签名在其中的作用吗?我不擅长REGEX。 1+
    • @GaganGami 对于这个特定示例,您的正则表达式没有任何问题。它避免了空字符串被提取。只是为了在更广泛的示例中安全。
    【解决方案2】:
    name, username = /^(.*?)\s*\((.*)\)$/.match('Adam Nguyen (adamnguyen)').captures
    

    【讨论】:

      【解决方案3】:

      给定:

      name = 'Adam Nguyen(adamnguyen)'
      

      如果输入总是像示例一样很短并且您没有执行此操作太多次(即性能不是问题),并且字符串的格式保证不会改变,我发现以下内容是比正则表达式稍微冗长,但更容易理解:

      human_readable_name, other_name = name.split('(')
      other_name = other_name[0..-2]
      

      但如果需要扩展,正则表达式是可行的方法:

      human_readable_name, other_name = name.split(/[()]+/);
      

      【讨论】:

      • 问题是关于 Ruby 的。我想你有不同的语言。
      • 我整个下午都在回答 JavaScript 问题。这就是我尝试切换它的结果。谢谢。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-26
      • 2021-06-12
      • 2018-11-22
      • 1970-01-01
      相关资源
      最近更新 更多