Using str.startswith is a cool idea in this case. But is it better than regex for performance or reliability? Regex syntax is not a model of simplicity, but in my simple case it's not too difficult.
Feb 27, 2023, 18:52 by li...@tompassin.net: > On 2/27/2023 9:16 PM, avi.e.gr...@gmail.com wrote: > >> And, just for fun, since there is nothing wrong with your code, this minor >> change is terser: >> >>>>> example = 'X - abc_degree + 1 + qq + abc_degree + 1' >>>>> for match in re.finditer(re.escape('abc_degree + 1') , example): >>>>> >> ... print(match.start(), match.end()) >> ... >> ... >> 4 18 >> 26 40 >> > > Just for more fun :) - > > Without knowing how general your expressions will be, I think the following > version is very readable, certainly more readable than regexes: > > example = 'X - abc_degree + 1 + qq + abc_degree + 1' > KEY = 'abc_degree + 1' > > for i in range(len(example)): > if example[i:].startswith(KEY): > print(i, i + len(KEY)) > # prints: > 4 18 > 26 40 > > If you may have variable numbers of spaces around the symbols, OTOH, the > whole situation changes and then regexes would almost certainly be the best > approach. But the regular expression strings would become harder to read. > -- > https://mail.python.org/mailman/listinfo/python-list > -- https://mail.python.org/mailman/listinfo/python-list