kk_lee69 发表于 2015-10-27 00:59:05

正则问题 麻烦懂正则的帮忙看看 用正则拆字符串,取;前面与;后面[已解决]

本帖最后由 kk_lee69 于 2015-10-30 15:54 编辑

字符串1,2,3;A,b,C
分别 拆成两个字符串 P.S 不使用数组返回…. 单纯拆字符串

语法一   只取 1,2,3   没有;分号时 也需要返回 1,2,3


语法二    只取 A,B,C   没有;分号时 需要返回空字符串

; 分號前後 不一定是英文或者數字

lxwlxwayy 发表于 2015-10-27 10:52:46

帮顶,希望正则高手出现

afan 发表于 2015-10-27 11:27:01

本帖最后由 afan 于 2015-10-27 11:34 编辑

语法一   只取 1,2,3   没有;分号时 需要返回全部

本来是很简单的问题,如果提问不加红字部分,以下字符串何解:
1,2,3A,b,C

haijie1223 发表于 2015-10-27 13:17:48

我表示没看明白楼主的意思。

kk_lee69 发表于 2015-10-27 13:52:49

回复 3# afan

我測試出一個是 (.+);這樣可以返回 前面 但是 萬一 沒分號的時候 就無符合的

所以 改成 (.+);|(.+)   可是這樣 會返回兩組 第一組 空白第二組返回全部

kk_lee69 发表于 2015-10-27 14:58:28

回复 3# afan

^(.+)[;]*$測試使用這樣卻 有個問題就是 ; 會跑出來@@

kk_lee69 发表于 2015-10-27 23:39:05

如何让 下面的这个字符串 也是返回空白 ,但是又必须要符合 上面的两个返回的结果呢??求解

$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,"(.+);",""))

haijie1223 发表于 2015-10-28 07:47:00

StringRegExpReplace($A,"[\d+,;]","")

haijie1223 发表于 2015-10-28 07:55:22

或者按照楼主的思路StringRegExpReplace($A,"(.*)[;\d+]","")

kk_lee69 发表于 2015-10-28 09:13:29

回复 8# haijie1223

樓主 可以請問一下
[\d+,;]   這裡的 , 意義是甚麼 是用以區隔 \d 與 ;嗎??還是 有其他的意義[]裡面一定要用,隔開嗎

haijie1223 发表于 2015-10-28 10:59:24

中括号里面的每个字符都是相互独立的,本来就不存在区隔符号,所以里面的逗号就是匹配逗号用的,其它符号也是匹配自己的元素用的。

kk_lee69 发表于 2015-10-28 11:28:28

回复 11# haijie1223
    所以 [\d+,;]是依據我的範例設計的 如果我只是要廣義的 取 ; 的前後這個就不適合了對吧

譬如 字串變成   A,B,C;KKKK

haijie1223 发表于 2015-10-28 11:37:17

回复 12# kk_lee69


    这种情况用9楼的正则

kk_lee69 发表于 2015-10-29 09:21:00

回复 13# haijie1223
了解!!另外 可以請教一下嗎

(.+);這樣寫 與 (.+)[;] 這樣寫 兩者 有什麼差異?? 在某些情況下 會有不同的結果嗎??

haijie1223 发表于 2015-10-29 10:52:36

回复 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+]",""))
我是针对你给的字符串写的正则,这个应该具体问题具体分析吧。
我加中括弧是为了框住 分号 和 数字,至于单个字符没必要框住吧,我是这么理解的。
页: [1] 2 3
查看完整版本: 正则问题 麻烦懂正则的帮忙看看 用正则拆字符串,取;前面与;后面[已解决]