Foxtable(狐表)用户栏目专家坐堂 → 在数字后面加"|"号


  共有128人关注过本帖树形打印复制链接

主题:在数字后面加"|"号

帅哥哟,离线,有人找我吗?
cxmxjwlmq
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:352 积分:4198 威望:0 精华:0 注册:2018/4/6 18:02:00
在数字后面加"|"号  发帖心情 Post By:2024/12/29 13:20:00 [只看该作者]

各位老师:好
   在一个字符串中,需要在没有单位的数字后面加上"|"号,
   如字符串:“味精3包魔鬼椒0.5生粉5公斤大香0.5公斤草果0.5红糖1干姜0.5公斤肉桂0.5公斤”中,需要在没有单位的数字后面加"|",
   例如:魔鬼椒0.5后加"|",草果0.5后加"|",红糖1后加"|",  数字前面的物品很随机。
   增加后变成:新字符串:“味精3包魔鬼椒0.5|生粉5公斤大香0.5公斤草果0.5|红糖1|干姜0.5公斤肉桂0.5公斤”

请各位老师及大咖们指教!

谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111471 积分:567443 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/29 20:44:00 [只看该作者]

Dim pattern As String = "\d+[^.|包|公斤|斤]"
Dim txt = "味精3包魔鬼椒0.5生粉5公斤大香0.5公斤草果0.5红糖1干姜0.5公斤肉桂0.5公斤"
Dim str = System.Text.RegularExpressions.Regex.Replace(txt, pattern, New MatchEvaluator(Function(a As Match) As String
Return a.Value.Insert(a.Value.Length - 1, "|")
End Function))
Output.Show(str)

如果还有其它单位放到中括号里,比如
Dim pattern As String = "\d+[^.|包|公斤|斤|袋|箱|合]"

 回到顶部
帅哥哟,离线,有人找我吗?
y2287958
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4777 积分:34693 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2024/12/30 8:09:00 [只看该作者]

Output.Show(Regex.Replace("味精3包魔鬼椒0.5生粉5公斤大香0.5公斤草果0.5红糖1干姜0.5公斤肉桂0.5公斤", "(\d+)([^.|包|公斤|斤])", "$1" & "|" & "$2"))


 回到顶部
帅哥哟,离线,有人找我吗?
cxmxjwlmq
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:352 积分:4198 威望:0 精华:0 注册:2018/4/6 18:02:00
  发帖心情 Post By:2024/12/30 10:52:00 [只看该作者]

蓝老师:好
   出现异常:编辑错误,应为表达式图片点击可在新窗口打开查看

加:如果“味精30包魔鬼椒26生粉125公斤大香0.5公斤草果0.5红糖26干姜0.5公斤肉桂0.5公斤”  字符串中,味精增加成30包,或300包,按照三楼老师的代码,转换后:味精3|0包魔鬼椒26|生粉12|5公斤大香0.5公斤草果0.5|红糖26|干姜0.5公斤肉桂0.5公斤
      我理想的状态:不管有单位的前面是小数、十位、百位,都不加"|",想要的结果:味精30包魔鬼椒26|生粉125公斤大香0.5公斤草果0.5|红糖26|干姜0.5公斤肉桂0.5公斤
请各位老师费心!
谢谢
  
[此贴子已经被作者于2024/12/30 10:58:30编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111471 积分:567443 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/30 11:00:00 [只看该作者]

2楼代码我测试没有问题。更新Foxtable到最新版试试

 回到顶部
帅哥哟,离线,有人找我吗?
cxmxjwlmq
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:352 积分:4198 威望:0 精华:0 注册:2018/4/6 18:02:00
  发帖心情 Post By:2024/12/30 13:31:00 [只看该作者]

蓝老师:好
   升级到新版本后,可以执行了!谢谢!
  但如果“味精30包魔鬼椒26生粉125公斤大香0.5公斤草果0.5红糖26干姜0.5公斤肉桂0.5公斤”  字符串中,有单位的增加到十位、百位,如:味精增加成30包,或300包,转换后:味精3|0包魔鬼椒26|生粉12|5公斤大香0.5公斤草果0.5|红糖26|干姜0.5公斤肉桂0.5公斤
      我理想的状态:不管有单位的前面是小数、十位、百位,都不加"|",想要的结果:味精30包魔鬼椒26|生粉125公斤大香0.5公斤草果0.5|红糖26|干姜0.5公斤肉桂0.5公斤
请各位老师费心!
谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111471 积分:567443 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/30 13:48:00 [只看该作者]

Dim pattern As String = "\d[^.|包|斤|公|\d]"

 回到顶部