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

作者: ousapas (komica123)   2012-09-06 01:36:37
※ 引述《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個以上空白直到結尾
作者: Rplus (R+) (9527)   2012-09-06 04:50:00
所以2.(1)的 ^| 是什麼開頭?
作者: ousapas (komica123)   2012-09-06 05:09:00
^ Matches the beginning of a line or string.$ Matches the end of a line or string.
作者: blackkaku (black)   2012-09-06 10:13:00
(^|[^\\])也可以寫成[^\\^]吧。
作者: l10nel (小失)   2012-09-06 17:29:00
不可以
作者: blackkaku (black)   2012-09-06 20:30:00
請問為何不可以?
作者: l10nel (小失)   2012-09-07 05:17:00
[^...] 表示任何非...的字元,這和 | 前的 ^ 明顯不同義。再說, ^不會消耗字元,只是抓取定點,[...]會消耗一個字元。
作者: Rplus (R+) (9527)   2012-09-07 05:34:00
]
作者: blackkaku (black)   2012-09-07 23:20:00
了解了 感謝!
作者: DingWeizhe   2012-09-10 01:38:00
這一整句應該是在抓字串裡的跳脫字元吧?2-1前面的^ 搭上2.2的(?:\\.)* 如果是以\x 開頭的 或者2.1後面的[^\\]加上(?:\\.)* 不是\\x這種形式的

Links booklink

Contact Us: admin [ a t ] ucptt.com