я написал следующее регулярное выражение для обнаружения всех вхождений C. 1909
:Регулярного выражения не работает, когда последовательность изменилась
input: C. 1909 test C.1909
\b[Cc][\.]\s*?\d+\b
это работает отлично,
Однако, когда я пытаюсь обнаружить все вхождения 1909 C.
используя следующее регулярное выражение, это ничего не найдено:
input: 1909C. test 1909 C.
\b\d+\s*?[Cc][\.]\b
'\ s *?', Что вы здесь пытаетесь? '\ s *' означает «пробел/табу повторяется 0 или более раз», а '?' означает «повторяется 0 или 1 раз». – h2ooooooo
Если вы хотите 4 цифры, используйте '\ d {4}'. Замените 'x *?' На 'x *', где 'x' - любое регулярное выражение. – Ingo
@ h2ooooooo - Это [«ленивый» квантификатор] (http://stackoverflow.com/q/3075130/7586) - это не так, но в этом контексте бесполезно. – Kobi