extmod/modure: Set subject begin_line so ^ doesn't match interior.
Fixes issue #8402. Signed-off-by: Damien George <damien@micropython.org>
This commit is contained in:
parent
adfd57c5fe
commit
63f0e700f4
|
@ -187,7 +187,7 @@ STATIC mp_obj_t ure_exec(bool is_anchored, uint n_args, const mp_obj_t *args) {
|
|||
}
|
||||
Subject subj;
|
||||
size_t len;
|
||||
subj.begin = mp_obj_str_get_data(args[1], &len);
|
||||
subj.begin_line = subj.begin = mp_obj_str_get_data(args[1], &len);
|
||||
subj.end = subj.begin + len;
|
||||
int caps_num = (self->re.sub + 1) * 2;
|
||||
mp_obj_match_t *match = m_new_obj_var(mp_obj_match_t, char *, caps_num);
|
||||
|
@ -220,7 +220,7 @@ STATIC mp_obj_t re_split(size_t n_args, const mp_obj_t *args) {
|
|||
Subject subj;
|
||||
size_t len;
|
||||
const mp_obj_type_t *str_type = mp_obj_get_type(args[1]);
|
||||
subj.begin = mp_obj_str_get_data(args[1], &len);
|
||||
subj.begin_line = subj.begin = mp_obj_str_get_data(args[1], &len);
|
||||
subj.end = subj.begin + len;
|
||||
int caps_num = (self->re.sub + 1) * 2;
|
||||
|
||||
|
@ -280,7 +280,7 @@ STATIC mp_obj_t re_sub_helper(size_t n_args, const mp_obj_t *args) {
|
|||
size_t where_len;
|
||||
const char *where_str = mp_obj_str_get_data(where, &where_len);
|
||||
Subject subj;
|
||||
subj.begin = where_str;
|
||||
subj.begin_line = subj.begin = where_str;
|
||||
subj.end = subj.begin + where_len;
|
||||
int caps_num = (self->re.sub + 1) * 2;
|
||||
|
||||
|
|
|
@ -31,3 +31,13 @@ print(s)
|
|||
r = re.compile(b"x")
|
||||
s = r.split(b"fooxbar")
|
||||
print(s)
|
||||
|
||||
# using ^
|
||||
r = re.compile("^ab")
|
||||
s = r.split("abababcabab")
|
||||
print(s)
|
||||
|
||||
# using ^ with |
|
||||
r = re.compile("^ab|cab")
|
||||
s = r.split("abababcabab")
|
||||
print(s)
|
||||
|
|
|
@ -75,3 +75,7 @@ except TypeError:
|
|||
|
||||
# Include \ in the sub replacement
|
||||
print(re.sub("b", "\\\\b", "abc"))
|
||||
|
||||
# Using ^, make sure it doesn't repeatedly match
|
||||
print(re.sub("^ab", "*", "abababcabab"))
|
||||
print(re.sub("^ab|cab", "*", "abababcabab"))
|
||||
|
|
Loading…
Reference in New Issue