首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从字符串中删除和标识

如何从字符串中删除和标识
EN

Stack Overflow用户
提问于 2020-10-23 20:20:29
回答 4查看 527关注 0票数 7

我有一个如下所示的字符串,它们是表中的in:

代码语言:javascript
复制
1,2,3,4,5,6,7,8,9

如果有人从数据库中删除某些内容,我将需要更新字符串。我知道这样做会去掉值,但不会去掉逗号。是否知道如何检查id在前后是否有逗号,这样我的字符串就不会中断?

代码语言:javascript
复制
$new_values = $original_values[0];
$new_values =~ s/$car_id//;

结果:1,2,,4,5,6,7,8,9采用上述样本(bad)。应该是1,2,4,5,6,7,8,9

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-10-23 20:29:00

您可以使用

代码语言:javascript
复制
s/^$car_id,|,$car_id\b//

详细信息

  • ^ - string
  • $car_id的开始-变量value
  • , - comma
  • | - or
  • , - comma
  • $car_id -变量value
  • \b -单词边界。
票数 5
EN

Stack Overflow用户

发布于 2020-10-23 20:30:34

要从字符串中删除$car_id

代码语言:javascript
复制
my $car_id = 3;
my $new_values = q{1,2,3,4,5,6,7,8,9}; 
$new_values = join q{,}, grep { $_ != $car_id } 
    split /,/, $new_values; 
say $new_values;
# Prints:
# 1,2,4,5,6,7,8,9

如果已经删除了id(s),并且需要删除额外的逗号,则重新格式化字符串,如下所示:

代码语言:javascript
复制
my $new_values = q{,,1,2,,4,5,6,7,8,9,,,}; 
$new_values = join q{,}, grep { /\d/ } split /,/, $new_values; 
say $new_values;
# Prints:
# 1,2,4,5,6,7,8,9
票数 6
EN

Stack Overflow用户

发布于 2020-10-23 20:25:49

代码语言:javascript
复制
s/^\Q$car_id\E,|,\Q$car_id\E\b//

另一种方法是存储额外的前导和尾随逗号(,1,2,3,4,5,6,7,8,9,)。

主要的好处是它使使用SQL搜索id变得更容易(因为您可以搜索,$car_id,)。编辑也是如此。

在Perl方面,您可以使用

代码语言:javascript
复制
s/,\K\Q$car_id\E,//    # To remove
代码语言:javascript
复制
substr($_, 1, -1)      # To get actual string
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64506803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档