0

Boost::regexとBoost::regex_searchを使用していて、正規表現を実行すると

\\<(\\w+\\-?\\w+)\\>

これらはすべて通常のように一致します

BitcoinicaHacker> Who wants free bitcoins courtesy of bitcoinica?
<grepix> who doesn't!
<BitcoinicaHacker> post your btc addr
<nanotube> i think bitcoinica wants free bitcoins courtesy of bitcoinica

しかし、このような行も一致します

--> peacekeep3r (~peacekeep@chello084114169104.2.15.vie.surfer.at) has joined #bitcoin
<-- Raccoon has quit (Changing host)
--> Raccoon (bismuth@unaffiliated/raccoon) has joined #bitcoin

左山かっこ、ダッシュのあるテキスト、直角かっこを見つけるように特に依頼したので、これはかなり混乱します。

アップデート2:

最適なソリューションを見つけるのを手伝ってくれたΩmegaに感謝します。 <(\\w+(?:\\-\\w+)*)>

アップデート:

また

<(\\w+\\-?\\w+)> or <([^-<>]+[^<>]*)> works for my purposes.

エスケープスラッシュを削除するのを忘れました。

4

1 に答える 1

0

次のような正規表現を使用してみてください<([^-<>]+[^<>]*)>

、、、または、以外の文字で始まり、その後にまたは。以外の文字の任意の組み合わせ(これも空)が続くコンテンツ<を一致させます。>-<><>

アップデート:

次のような正規表現の使用を検討することもでき<((?!\\-\\-)[^<>]+)>ます。

で始まらず、またはを含まない<との間のコンテンツを一致させます。>--<>

于 2012-06-28T17:08:39.770 に答える