作者ousapas (waliliadai)
看板RegExp
標題Re: [問題] (?:^|[^\\])的意思為何?
時間Thu Sep 6 01:36:37 2012
※ 引述《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
1F:→ Rplus:所以2.(1)的 ^| 是什麼開頭? 09/06 04:50
2F:→ ousapas:^ Matches the beginning of a line or string. 09/06 05:09
3F:→ ousapas:$ Matches the end of a line or string. 09/06 05:09
4F:→ blackkaku: (^|[^\\])也可以寫成[^\\^]吧。 09/06 10:13
5F:推 l10nel:不可以 09/06 17:29
6F:→ blackkaku:請問為何不可以? 09/06 20:30
7F:推 l10nel:[^...] 表示任何非...的字元,這和 | 前的 ^ 明顯不同義。 09/07 05:17
8F:→ l10nel:再說, ^不會消耗字元,只是抓取定點,[...]會消耗一個字元。 09/07 05:20
9F:→ Rplus:] 09/07 05:34
10F:推 blackkaku:了解了 感謝! 09/07 23:20
11F:→ DingWeizhe:這一整句應該是在抓字串裡的跳脫字元吧? 09/10 01:38
12F:→ DingWeizhe:2-1前面的^ 搭上2.2的(?:\\.)* 如果是以\x 開頭的 或者 09/10 01:44
13F:→ DingWeizhe:2.1後面的[^\\]加上(?:\\.)* 不是\\x這種形式的 09/10 01:46