找回密码
 加入
搜索
查看: 2931|回复: 10

[效率算法] 正则匹配求助(已解决)

  [复制链接]
发表于 2015-11-26 23:59:15 | 显示全部楼层 |阅读模式
本帖最后由 b18821 于 2015-11-27 18:03 编辑

有几种可能:
我是 小王王  (中间若干空格)
我是大王长木  (中间无空格)
我是:小王小   (中间是冒号半角)
我是:李小王小李 (中间是冒号全角)
我是  :   张小王 (中间是全或半角冒号混合若干空格)

现在要匹配后面的名称,正则怎么写?
就是得到:小王王 大王长木 小王小 李小王小李 张小王
 楼主| 发表于 2015-11-27 00:16:35 | 显示全部楼层
不好意思没说全,上面的”是” 也可以是”叫””为”等。
发表于 2015-11-27 08:07:32 | 显示全部楼层
我[是为叫].*?([\x{4e00}-\x{9fa5}]+)
 楼主| 发表于 2015-11-27 14:42:08 | 显示全部楼层
版主啊,我这测试不行啊!
#
include <StringConstants.au3>

Local $string='我是 小王王  (中间若干空格)我是大王长木  (中间无空格)我是:小王小   (中间是冒号半角)我是:李小王小李 (中间是冒号全角)我是  :   张小王 (中间是全或半角冒号混合若干空格)'
Local $aArray = StringRegExp($string, '我[是为叫].*?([\x{4e00}-\x{9fa5}]+)', $STR_REGEXPARRAYFULLMATCH)
For $i = 0 To UBound($aArray) - 1
    MsgBox(0, "我是可爱的结果 " & $i, $aArray[$i])
Next
 楼主| 发表于 2015-11-27 14:43:49 | 显示全部楼层
#include <StringConstants.au3>

Local $string='我是 小王王  (中间若干空格)我是大王长木  (中间无空格)我是:小王小   (中间是冒号半角)我是:李小王小李 (中间是冒号全角)我是  :   张小王 (中间是全或半角冒号混合若干空格)'
Local $aArray = StringRegExp($string, '我[是为叫].*?([\x{4e00}-\x{9fa5}]+)', $STR_REGEXPARRAYFULLMATCH)
For $i = 0 To UBound($aArray) - 1
    MsgBox(0, "我是可爱的结果 " & $i, $aArray[$i])
Next
发表于 2015-11-27 15:23:25 | 显示全部楼层
回复 5# b18821


    为什么你测试字符串要变成那样?
Local $string='我是 小王王' & @CRLF & '我是大王长木' & @CRLF & '我是:小王小' & @CRLF & '我是:李小王小李' & @CRLF & '我是  :   张小王'
Local $aArray = StringRegExp($string, '我[是为叫].*?([\x{4e00}-\x{9fa5}]+)', 3)
For $i = 0 To UBound($aArray) - 1
        MsgBox(0, "我是可爱的结果 " & $i, $aArray[$i])
Next
 楼主| 发表于 2015-11-27 17:43:43 | 显示全部楼层
版主好厉害啊!!
嗯...
.点 匹配任何单个字符  *重复任意次  ?重复0、1次 学习了!

能否一题多解呢?还有没有别的答案!
 楼主| 发表于 2015-11-27 17:46:51 | 显示全部楼层
再请教下版主,里面的?号我还没理解,它的作用域是谁呢?  是.*,还是所有前面的模式?
发表于 2015-11-27 20:24:58 | 显示全部楼层
回复 6# afan


    打酱油路过此地,幸会幸会...A版,我就是想问问撸主为啥要那么匹配?
 楼主| 发表于 2015-11-28 10:05:41 | 显示全部楼层
回复 9# haijie1223


    为了写一个自动回复的代码,是java下的,这个au3的匹配的确是很完美!!
 楼主| 发表于 2015-11-28 10:10:42 | 显示全部楼层
回复 9# haijie1223


    回复带人的名字,可以显的亲切一点.
比如: 王小小 亲,你好.....
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-17 00:06 , Processed in 0.097507 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表