Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共7 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

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

1楼
cxmxjwlmq 发表于: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楼
有点蓝 发表于: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+[^.|包|公斤|斤|袋|箱|合]"
3楼
y2287958 发表于: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"))

4楼
cxmxjwlmq 发表于: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楼
有点蓝 发表于:2024/12/30 11:00:00
2楼代码我测试没有问题。更新Foxtable到最新版试试
6楼
cxmxjwlmq 发表于: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楼
有点蓝 发表于:2024/12/30 13:48:00
Dim pattern As String = "\d[^.|包|斤|公|\d]"
共7 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .04004 s, 2 queries.