以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 在数字后面加"|"号 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=194620) |
-- 作者: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公斤” 请各位老师及大咖们指教! 谢谢!
|
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间: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 -- 发布时间: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编辑过]
|
-- 作者:有点蓝 -- 发布时间:2024/12/30 11:00:00 -- 2楼代码我测试没有问题。更新Foxtable到最新版试试 |
-- 作者: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公斤 请各位老师费心! 谢谢
|
-- 作者:有点蓝 -- 发布时间:2024/12/30 13:48:00 -- Dim pattern As String = "\\d[^.|包|斤|公|\\d]" |
-- 作者:cxmxjwlmq -- 发布时间:2025/1/3 10:16:00 -- 谢谢! |