Re: [問題] (?:^|[^\\])的意思為何?

看板RegExp作者 (waliliadai)時間11年前 (2012/09/06 01:36), 編輯推噓3(3010)
留言13則, 5人參與, 最新討論串2/2 (看更多)
※ 引述《kilva (嗡嗡)》之銘言: : 程式語言為JavaScript,完整的正規運算式為 : /^\s+|((?:^|[^\\])(?:\\.)*)\s+$/g : 我個人猜測是和 : /^\s+|(^(?:\\.)*)\s+$|([^\\](?:\\.)*)\s+$/g : 一樣意思,即 : /^\s+/g(前端數個空白) : 或 : /(^(?:\\.)*)\s+$/g(前頭零個以上脫逸字元後接數個空白) : 或 : /([^\\](?:\\.)*)\s+$/g(後端有零個以上脫逸字元後接數個完白) : 第一次看到^後直接接|的正規運算式,請問各位這樣的想法是否正確。 : 謝謝。 1. ^\s+ 開頭 + 1個以上空白 OR 2. (1) (^|[^\\]) (開頭 or 非\字元) *1 (2) (\\.)* (\ + 1個任意字元) *0~n (3) \s+$ 1個以上空白直到結尾 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.161.144.158

09/06 04:50, , 1F
所以2.(1)的 ^| 是什麼開頭?
09/06 04:50, 1F

09/06 05:09, , 2F
^ Matches the beginning of a line or string.
09/06 05:09, 2F

09/06 05:09, , 3F
$ Matches the end of a line or string.
09/06 05:09, 3F

09/06 10:13, , 4F
(^|[^\\])也可以寫成[^\\^]吧。
09/06 10:13, 4F

09/06 17:29, , 5F
不可以
09/06 17:29, 5F

09/06 20:30, , 6F
請問為何不可以?
09/06 20:30, 6F

09/07 05:17, , 7F
[^...] 表示任何非...的字元,這和 | 前的 ^ 明顯不同義。
09/07 05:17, 7F

09/07 05:20, , 8F
再說, ^不會消耗字元,只是抓取定點,[...]會消耗一個字元。
09/07 05:20, 8F

09/07 05:34, , 9F
]
09/07 05:34, 9F

09/07 23:20, , 10F
了解了 感謝!
09/07 23:20, 10F

09/10 01:38, , 11F
這一整句應該是在抓字串裡的跳脫字元吧?
09/10 01:38, 11F

09/10 01:44, , 12F
2-1前面的^ 搭上2.2的(?:\\.)* 如果是以\x 開頭的 或者
09/10 01:44, 12F

09/10 01:46, , 13F
2.1後面的[^\\]加上(?:\\.)* 不是\\x這種形式的
09/10 01:46, 13F
文章代碼(AID): #1GHusfoc (RegExp)
文章代碼(AID): #1GHusfoc (RegExp)