Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
文字列があり、 sub string"SolutionAN ANANANA SolutionBNabcabcSolutionX"で始まり、Solutionその直前で終わるすべての文字列を返したいと思いますSolution。
"SolutionAN ANANANA SolutionBNabcabcSolutionX"
Solution
使用中boost::regex、正規表現を作成できません。
boost::regex
SolutionAN ANANANA、 SolutionBNababcおよび出力として取得したいSolutionX。私はブーストでの正規表現が初めてです。どんな助けでも大歓迎です。
SolutionAN ANANANA
SolutionBNababc
SolutionX
この正規表現を使用できます
(?s)Solution.*?(?=Solution|$)
.*?0 から多くの文字を遅延して一致させます。つまり、食べる量をできるだけ減らします。それがなければ?貪欲になり、いくらでも食べてしまいます。
.*?
?
x(?=yz)yz が後に続く場合にのみ x に一致する先読みです
x(?=yz)
$文字列の終わりです
$
.デフォルトでは、改行文字と一致しません。(?s)正規表現内で修飾子を使用するか、改行文字と一致mod_sさせるオプションを使用する必要があります.
.
(?s)
mod_s