正则问题 麻烦懂正则的帮忙看看 用正则拆字符串,取;前面与;后面[已解决]
本帖最后由 kk_lee69 于 2015-10-30 15:54 编辑字符串1,2,3;A,b,C
分别 拆成两个字符串 P.S 不使用数组返回…. 单纯拆字符串
语法一 只取 1,2,3 没有;分号时 也需要返回 1,2,3
语法二 只取 A,B,C 没有;分号时 需要返回空字符串
; 分號前後 不一定是英文或者數字 帮顶,希望正则高手出现 本帖最后由 afan 于 2015-10-27 11:34 编辑
语法一 只取 1,2,3 没有;分号时 需要返回全部
本来是很简单的问题,如果提问不加红字部分,以下字符串何解:
1,2,3A,b,C 我表示没看明白楼主的意思。 回复 3# afan
我測試出一個是 (.+);這樣可以返回 前面 但是 萬一 沒分號的時候 就無符合的
所以 改成 (.+);|(.+) 可是這樣 會返回兩組 第一組 空白第二組返回全部 回复 3# afan
^(.+)[;]*$測試使用這樣卻 有個問題就是 ; 會跑出來@@ 如何让 下面的这个字符串 也是返回空白 ,但是又必须要符合 上面的两个返回的结果呢??求解
$A="1,2,3;KKK"
MsgBox(0,"",StringRegExpReplace($A,"(.+);",""))
$A="1,2,3;"
MsgBox(0,"",StringRegExpReplace($A,"(.+);",""))
;如何让 下面的这个字符串 也是返回空白 ,但是又必须要符合 上面的两个返回的结果呢??求解
$A="1,2,3"
MsgBox(0,"",StringRegExpReplace($A,"(.+);",""))
StringRegExpReplace($A,"[\d+,;]","") 或者按照楼主的思路StringRegExpReplace($A,"(.*)[;\d+]","") 回复 8# haijie1223
樓主 可以請問一下
[\d+,;] 這裡的 , 意義是甚麼 是用以區隔 \d 與 ;嗎??還是 有其他的意義[]裡面一定要用,隔開嗎 中括号里面的每个字符都是相互独立的,本来就不存在区隔符号,所以里面的逗号就是匹配逗号用的,其它符号也是匹配自己的元素用的。 回复 11# haijie1223
所以 [\d+,;]是依據我的範例設計的 如果我只是要廣義的 取 ; 的前後這個就不適合了對吧
譬如 字串變成 A,B,C;KKKK 回复 12# kk_lee69
这种情况用9楼的正则 回复 13# haijie1223
了解!!另外 可以請教一下嗎
(.+);這樣寫 與 (.+)[;] 這樣寫 兩者 有什麼差異?? 在某些情況下 會有不同的結果嗎?? 回复 14# kk_lee69 $A="1,2,3;KKK"
MsgBox(0,"",StringRegExpReplace($A,"(.*)[;\d+]",""))
$A="1,2,3;"
MsgBox(0,"",StringRegExpReplace($A,"(.*)[;\d+]",""))
;如何让 下面的这个字符串 也是返回空白 ,但是又必须要符合 上面的两个返回的结果呢??求解
$A="1,2,3"
MsgBox(0,"",StringRegExpReplace($A,"(.*)[;\d+]",""))
我是针对你给的字符串写的正则,这个应该具体问题具体分析吧。
我加中括弧是为了框住 分号 和 数字,至于单个字符没必要框住吧,我是这么理解的。