匹配 elisp 正则表达式中的搜索开始位置
Match start-of-search position in elisp regexp
我正在用 elisp 进行一些解析,并且我有一个已部分使用的字符串(假设它的值为 "foobar123"
)。假设我已经使用了 "foobar"
(所以我知道我需要从 char 6 开始解析)并且期望使用 2
.
我已经尝试了以下方法,其中 none 做了我想要的。
(string-match "2" "foobar123" 6) ; Matches the `2` at character 7.
(string-match "^2" "foobar23" 6) ; Not at the beginning of line.
(string-match "\`2" "foobar23" 6) ; Not at the beginning of string.
我已经成功地提取了一个子字符串并与之匹配(即 (string-match "^2" (substring "foobar23" 6))
),但这似乎很浪费。感觉我想要一个特殊的字符,意思是"match at start of search only",但是我找不到。有没有更好的方法?
没有我所知道的正则表达式语法。
另一种解决方案是将字符串插入缓冲区,在使用字符串时移动点并使用 \=
构造来匹配点。
我正在用 elisp 进行一些解析,并且我有一个已部分使用的字符串(假设它的值为 "foobar123"
)。假设我已经使用了 "foobar"
(所以我知道我需要从 char 6 开始解析)并且期望使用 2
.
我已经尝试了以下方法,其中 none 做了我想要的。
(string-match "2" "foobar123" 6) ; Matches the `2` at character 7.
(string-match "^2" "foobar23" 6) ; Not at the beginning of line.
(string-match "\`2" "foobar23" 6) ; Not at the beginning of string.
我已经成功地提取了一个子字符串并与之匹配(即 (string-match "^2" (substring "foobar23" 6))
),但这似乎很浪费。感觉我想要一个特殊的字符,意思是"match at start of search only",但是我找不到。有没有更好的方法?
没有我所知道的正则表达式语法。
另一种解决方案是将字符串插入缓冲区,在使用字符串时移动点并使用 \=
构造来匹配点。