【求助】正则如何排除不想要的内容?【已解决】
本帖最后由 网络书生 于 2018-3-12 11:33 编辑okerStars Hand #2792278300014:
20:45:51 ET
Table '27922783'button
Seat 1: 2456919248
Seat 2: 1835165825
Seat 3: 807556511
Seat 4: 2595026560
2456919248: posts
1835165825: posts
807556511: posts
2595026560: posts
如上文本我要把文本中数字部分大于等于八位的替换成前八位,后面的删除掉,红色部分的要保留不让替换,正则该怎么写?求大侠帮助,非常感谢! 先把
okerStars Hand #2792278300014:
20:45:51 ET
Table '27922783'button
这段替换为临时字符串
再替换数字部分
临时字符串替换回。
不要把问题搞复杂了,分步操作更易维护,正则不绕弯,执行速度还会更快。 回复 2# afan
原来也想过这个办法,但是发现不好弄,主要是文本量很大,有多个文本,一个文本中有很多处okerStars Hand #2792278300014:这样的日志,我只是摘了一个,并且这个数字在不停增加变化 回复 3# 网络书生
### 友情提示:本脚本由 Au3.REHelper 于 2018/03/12 10:50 自动生成,不保证其正确性,请自行测试 ###
Local $sSource = _
'okerStars Hand #279227830045745737014:' & @CRLF & _
'20:45:51 ET' & @CRLF & _
"Table '279227836565'button" & @CRLF & _
'Seat 1: 2456919248 ' & @CRLF & _
'Seat 2: 1835165825' & @CRLF & _
'Seat 3: 807556511 ' & @CRLF & _
'Seat 4: 2595026560 ' & @CRLF & _
'2456919248: posts ' & @CRLF & _
'1835165825: posts ' & @CRLF & _
'807556511: posts ' & @CRLF & _
'2595026560: posts' & @CRLF & _
'okerStars Hand #56862792278014:' & @CRLF & _
'20:45:51 ET' & @CRLF & _
"Table '642792278365'button" & @CRLF & _
'Seat 1: 572456919248 ' & @CRLF & _
'Seat 2: 541835165825' & @CRLF & _
'Seat 3: 43807556511 ' & @CRLF & _
'Seat 4: 4562595026560 ' & @CRLF & _
'2456919248: posts ' & @CRLF & _
'1835165825: posts ' & @CRLF & _
'807556511: posts ' & @CRLF & _
'2595026560: posts'
;~MsgBox(0, '源字符串', $sSource)
Local $sSRERe = StringRegExpReplace($sSource, '((?<=\s)\d{8})\d+', '\1')
MsgBox(0, '替换结果', $sSRERe) 本帖最后由 hnfeng 于 2018-3-12 11:06 编辑
那就 修改一下正则表达式 排除 以 # 或 ' 开头的数字串
正则表达式昨天A大给你了,稍稍修改一下
匹配的是 (?<!['#\d])\d{8} A 大 的代码很好,赞一下
我也搞出来了
替换那行是这样:Local $sSRERe = StringRegExpReplace($sSource, "((?<!['#\d])\d{8})\d+", '\1') 本帖最后由 网络书生 于 2018-3-12 11:32 编辑
回复 4# afanhnfeng
谢谢A大和hnfeng,问题终于解决了,还是正则不熟悉啊,多谢二位了,我开始也是想着 排除 以 # 或 ' 开头的数字串,但就是不知道怎么写,开始写成"[^#']\b\d{8,}"了,但是看结果替换后有些空格被替换了还有些数字没有被替换。
页:
[1]