以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 求正则表达式 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=170181)
|
-- 作者:qq252476275
-- 发布时间:2021/7/15 9:01:00
-- 求正则表达式
求教1个正则表达式:
内容为:
if([单重]>400,24*{数量1},if([单重]>200,12*{数量2},if([单重]>70,8*[数量],if([单重]>50,6*[数量],if([单重]>40,5.5*[数量],if([单重]>30,5*[数量],if([单重]>20,4.5*[数量],if([单重]>10,4*[数量],if([单重]>2,3.5*[数量],3*[数量])))))))))
如何将[]与{}中的值提取出来成为数组
arr1 = [\'[单重]\',\'[单重]\' .....] arr2 = [\'{数量1}\',\'{数量2}\']
|
-- 作者:qq252476275
-- 发布时间:2021/7/15 9:03:00
--
[],{}中的字数不确定
|
-- 作者:有点蓝
-- 发布时间:2021/7/15 9:14:00
--
Dim pattern As String = "\\[\\w+(?=\\])\\]" \'Dim pattern As String = "\\{\\w+(?=\\})\\}" Dim txt = "if([单重]>400,24*{数量1},if([单重]>200,12*{数量2},if([单重]>70,8*[数量],if([单重]>50,6*[数量],if([单重]>40,5.5*[数量],if([单重]>30,5*[数量],if([单重]>20,4.5*[数量],if([单重]>10,4*[数量],if([单重]>2,3.5*[数量],3*[数量])))))))))" Dim rgx = new System.Text.RegularExpressions.Regex(pattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase)
For Each match As System.Text.RegularExpressions.Match In rgx.Matches(txt) Output.Show(match.Value ) Next
|
-- 作者:qq252476275
-- 发布时间:2021/7/15 16:06:00
--
此主题相关图片如下:zzbds2.png
为什么这个正则表达式在 “在线正则表达式测试工具”中以及浏览器的控制台中无效果?
此主题相关图片如下:zzbds.png
|
-- 作者:有点蓝
-- 发布时间:2021/7/15 16:18:00
--
不同语言的正则规则不一样的。3楼的适合c#或者vb.net,不适合js
|
-- 作者:qq252476275
-- 发布时间:2021/7/15 17:21:00
--
使用 Dim p1 As String = "\\[.*?\\]" , c# , js 都可以。
以下内容为程序代码:
1 2 Dim pattern As String = "\\[\\w+(?=\\])\\]" \'Dim pattern As String = "\\{\\w+(?=\\})\\}" 3 4 Dim txt = "if([单重1]>400,24*{数量1234},if([单重234]>200,12*{数量245},if([单重3]>70,8*[数量],if([单重]>50,6*[数量],if([单重44444444444]>40,5.5*[数量],if([单重]>30,5*[数量],if([单重]>20,4.5*[数量],if([单重]>10,4*[数量],if([单重]>2,3.5*[数量],3*[数量])))))))))" 5 Dim rgx = new System.Text.RegularExpressions.Regex(pattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase) 6 7 For Each match As System.Text.RegularExpressions.Match In rgx.Matches(txt) 8 Output.Show(match.Value ) 9 Next 10 Output.Show("di er zhong " ) 11 12 Dim p1 As String = "\\[.*?\\]" 13 Dim re = new system.text.regularExpressions.regex(p1, system.text.regularexpressions.RegexOptions.IgnoreCase) 14 15 For Each match As System.Text.RegularExpressions.Match In rgx.Matches(txt) 16 Output.Show(match.Value ) 17 Next 18
输出: [单重1] [单重234] [单重3] [数量] [单重] [数量] [单重44444444444] [数量] [单重] [数量] [单重] [数量] [单重] [数量] [单重] [数量] [数量] di er zhong [单重1] [单重234] [单重3] [数量] [单重] [数量] [单重44444444444] [数量] [单重] [数量] [单重] [数量] [单重] [数量] [单重] [数量] [数量]
|
-- 作者:qq252476275
-- 发布时间:2021/7/15 17:25:00
--
学习的这篇文章中的
以下内容为程序代码:
1 var s = "<html><head><title></title></head><body></body></html>"; 2 var r = /<.*?>/ 3 var a = s.match(r); //返回单个元素数组["<html>"]
|