正则替换 源字符串是0800%20
本帖最后由 Mixrelax 于 2019-5-13 22:00 编辑$str=StringRegExpReplace("0800%20", "", "")
替换要求:
我要得到1820
替换规则:
开头若是0,替换成1,结尾若是0保留
中间若发现0,替换为空,若发现%替换为空。
开头若是0,替换成1,结尾若是0保留
你这个条件好像没说清楚,或者我没理解清楚,目前我的理解是这样的,如果开头是0,则替换成1,否则保留;
如果结尾是0,则保留,否则也保留
不会使用正则,用字符串写的,希望能帮到你。
;~ 源字符串就是 0800%20
;~ 目标字符串是 1820
;~ 替换要求:
;~ 我要得到1820
;~ 替换规则:
;~ 开头若是0,替换成1,结尾若是0保留
;~ 中间若发现0,替换为空,若发现%替换为空。
Dim $str = '0800%20'
Dim $estr = ''
If StringMid($str, 1, 1) = '0' Then
$estr = '1'
Else
$estr = StringMid($str, 1, 1)
EndIf
For $i = 2 To StringLen($str) - 1
$dstr = StringMid($str, $i, 1)
Select
Case $dstr = '%'
$estr = $estr
Case $dstr = '0'
$estr = $estr
Case Else
$estr &= $dstr
EndSelect
Next
If StringMid($str, StringLen($str), 1) = '0' Then
$estr &= '0'
Else
$estr &= StringMid($str, StringLen($str), 1)
EndIf 等大神来解答。。 可以自找原因,为什么没人回!!!!
再就是不需要非得正则搞定呀,其它方法也一样能搞定.
就你提供的那组数据,你可字符串 切隔后对比去选择,再重组选择的结果。
提问时应尽量详细,分别描述:源字符串是什么,需要获取什么。并充分考虑源字符串可能的形式,在示例中体现。 afan 发表于 2019-5-13 17:08
提问时应尽量详细,分别描述:源字符串是什么,需要获取什么。并充分考虑源字符串可能的形式,在示例中体现 ...
源字符串就是 0800%20
目标字符串是 1820
替换规则:
开头若是0,替换成1,结尾若是0保留
中间若发现0,替换为空,若发现%替换为空。 Mixrelax 发表于 2019-5-13 22:01
希望能够得到解答。 Local $str = '0800%20'
$str = StringRegExpReplace($str, '^0', '1')
$str = StringRegExpReplace($str, '(?<=.)(?=.)', '')
MsgBox(0, '', $str) Local $str = '0800%20'
$str = StringRegExpReplace($str, '(?m)(0)(+?)(*?)?(+?\d+)$', '1$2$4')
MsgBox(0, '', $str) 本帖最后由 Mixrelax 于 2019-5-18 20:07 编辑
Local $str = '800%20'
$str = StringRegExpReplace($str, '^(0)(+?)(*?)?(+?\d+)$', '1$2$4')
这种情况下得到的结果不对
本帖最后由 Mixrelax 于 2019-5-18 20:07 编辑
多谢afan,老师的指导。 niqindong 发表于 2019-5-30 14:43
开头若是0,替换成1,结尾若是0保留
你这个条件好像没说清楚,或者我没理解清楚,目前我的理解是这样的 ...
谢谢 你:face (10):
页:
[1]