[已解决]符号加汉字的正则表达式问题.
本帖最后由 Mr丶KQ 于 2016-8-17 20:56 编辑#include <Array.au3>
$String = "一二三四&B.J&" & @CRLF & _
"一二三四&二三四五(变)&" & @CRLF & _
"一二三四&三四五六七(红)&"
$Test = StringRegExp($String,".*\&.*[(变].*\&",3)
_ArrayDisplay($Test,"")其中需要匹配的符号有:. ( )
我需要的结果就是,当,输入“(变”时,只会出来"一二三四&二三四五(变)&"
但是,"一二三四&二三四五(变)&"和"一二三四&三四五六七(红)&"都会出来 看了好几遍,猜着楼主可能是这个意思。.+变.+ 回复 2# haijie1223
符号这里[],匹配内容的.
比如[(]
获得:
一二三四&二三四五(变)&
一二三四&三四五六七(红)&
;-------------------
但是,[(变]
也是同样:
一二三四&二三四五(变)&
一二三四&三四五六七(红)&
要的只是这行
一二三四&二三四五(变)&
;------------------- 回复 3# Mr丶KQ
原谅我语文没学好,表示没看懂您想要做什么~ 回复 4# haijie1223
就是匹配指定的符号和汉字.
比如:(变 (红 匹配一些符号时,需要用 \进行"转义"
匹配 . 用\.
匹配 ( 用\(
匹配 ) 用\) ".*\(变\).*" 回复 7# Alam
很谢谢你.
你这样我昨晚也试过了.
我通过读取某个Gui控件来实现搜索匹配的.
或许是我没表达清楚的缘故.
一大串的字符,其中这些字符包含中文、数字、字母、符号.
然而,我现在是实现了中文、数字、字母、字母+符号,见我发的代码.
符号+字母则是怎么都不行
\+读取某个控件
例如,读取后的内容为B
那么\B则是正则表达式内置的
无法获得指定的信息 回复haijie1223
就是匹配指定的符号和汉字.
比如:(变 (红
Mr丶KQ 发表于 2016-8-16 18:27 http://www.autoitx.com/images/common/back.gif
匹配'(变' :\(变 你说了这么多,我是越看越糊涂,表达问题有这么难吗?
源字符串:xxxxx
目标字符串:yyyyyy
求正则表达式:zzzzzz
如果这么写出来,估计大家就看懂了。 \+读取某个控件
例如,读取后的内容为B
那么\B则是正则表达式内置的
无法获得指定的信息
\这符号在正则里很重要, 要匹配它,当然也得转义!
要匹配 \B当然就用 \\B 本帖最后由 Mr丶KQ 于 2016-8-17 17:08 编辑
回复 10# haijie1223
源字符串:
经典男&青春白&<Body>100000000.BP3</Body>
经典男&银灵之子(变)&<Body>1091328001.BP3</Body>
经典男&B.S淡季&<Body>104776003.bp3</Body>
目标字符串:
经典男&青春白
经典男&银灵之子(变)
经典男&B.S淡季
需要读取搜索框的内容再进行匹配
再三修改后的:"(?i).*" & GUICtrlRead($Search) & ".*\&.*"
可惜还是有缺陷
比如:
搜索(变或(变)
获得经典男&银灵之子(变)
麻烦大大帮忙下. 回复 12# Mr丶KQ
#include <array.au3>
Local $string = _
'源字符串:' & @CRLF & _
'经典男&青春白&<Body>100000000.BP3</Body>' & @CRLF & _
'经典男&银灵之子(变)&<Body>1091328001.BP3</Body>' & @CRLF & _
'经典男&B.S淡季&<Body>104776003.bp3</Body>'
Local $aArray = StringRegExp($string, '(.*?)&<', 3)
_ArrayDisplay($aArray, '匹配')
MsgBox(0, '替换', StringRegExpReplace($string, '&<.*', ''))
回复 13# haijie1223
3Q 大大
先正则替换再正则匹配
完美解决了. 回复 14# Mr丶KQ
匹配和替换都可以,只用一种就可以了,我只是把两种方法都给你写上了。
页:
[1]