У меня есть this regex, который пытается найти отдельную STEP-линию и делит ее на три goups ссылочного номера, класс и свойства:Regex включает два матча в первом матче
#14=IFCEXTRUDEDAREASOLID(#28326,#17,#9,3657.6);
становится
[['14'], ['IFCEXTRUDEDAREASOLID'], ['#28326,#17,#9,3657.6']]
Иногда эти строки имеют произвольные разрывы строк, особенно среди свойств, поэтому я помещаю некоторые \ s в регулярное выражение. Это, однако, вызывает интересную ошибку. Шаблон теперь соответствует двум строкам в каждом матче.
Как настроить регулярное выражение только на одну строку, даже если у них есть разрывы строк? И только ради любопытства, почему он останавливается после второй линии и не продолжается до последней строки?
Мне кажется, вы хотели использовать что-то вроде ['# (\ d +) \ s * = \ s * ([a-zA-Z0-9] +) \ s * \ (([\ s \ S ] *) \)? '] (https://regex101.com/r/RHIu0r/3). Или ['^ # (\ d +) \ s * = \ s * ([a-zA-Z0-9] +) \ s * \ (([\ s \ S] *?) \); $'] (https://regex101.com/r/RHIu0r/4) (с многострочной опцией). –
@ WiktorStribiżew Спасибо большое! Кажется, это работает. Добавьте ответ, и я приму его как правильно.Бонусные очки для скорости :) – mottosson
Да, конечно, я добавлю пояснения. –