регулярное выражение, чтобы соответствовать до первого появления

У меня есть этот текст:

{{Infobox Item
|name = value
|prop2 = value
|prop3 = value
}}

это из шаблона MediaWiki.

у меня есть следующее регулярное выражение:

preg_match('/\{\{Infobox Item.+\\n\}\}\\n/s', $text, $ra);

Я использую PHP.

Я хочу соответствовать от {{Infobox Item до первого появления }} который всегда будет на линии сам по себе. Вышеуказанное регулярное выражение будет совпадать с {{Infobox Item до конца другого {{ }} блок стиля, который не то, что я хочу. Как мне этого добиться?

2

Решение

Код

preg_match('/{{Infobox Item.+?^}}$/sm', $subject, $regs)

Регулярное выражение

{{Infobox Item.+?^}}$

Визуализация регулярных выражений

https://regex101.com/r/gC0oV1/1

Человек читаемый

# {{Infobox Item.+?^}}$
#
# Options: Case sensitive; Exact spacing; Dot matches line breaks; ^$ match at line breaks; Greedy quantifiers
#
# Match the character string “{{Infobox Item” literally (case sensitive) «{{Infobox Item»
# Match any single character «.+?»
#    Between one and unlimited times, as few times as possible, expanding as needed (lazy) «+?»
# Assert position at the beginning of a line (at beginning of the string or after a line break character) (line feed) «^»
# Match the character string “}}” literally «}}»
# Assert position at the end of a line (at the end of the string or before a line break character) (line feed) «$»
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]