0

私の正規表現:

(?<=span class="ope">)[a-z0-9]+?\.(pl|com|net\.pl|tk|org|org\.pl|eu)|$(?=<\/span>)$

現時点では、文字列がテキストの先頭にある場合にのみ一致し、途中にある場合は失敗します。

例えば。

Something example.com- 不合格

example.com Something- 成功 (example.com見つかりました)。

これに対する解決策はありますか?

4

3 に答える 3

1

テスト済みのソリューションは次のとおりです。

(?<=span class="ope">).*?(?P<domain>\w+\.(?:pl|com|net\.pl|tk|org|org\.pl|eu)).*?(?=<\/span>)

domain必要なドメインのキーを返します。ここで試してみてください: http://www.regex101.com/r/mK1fP0

二人の後ろ姿の問題。2 番目のものは、代わりに先読みでなければなりません。また.*?、ドメインの周りのいくつかのものと一致するように、いくつかを2回挿入しました。

于 2012-12-30T14:45:08.477 に答える
1
(?<=span class="ope">).*?([a-zA-Z0-9]*\.(pl|com|net\.pl|tk|org|org\.pl|eu)).*(?=<\/span>)

テスト: http://www.regex101.com/r/wK0aA2

これを使用する場合、グループ 0 ではなくグループ 1 を引き出す必要があります。

于 2012-12-30T14:36:50.300 に答える
0

これを試して

(?<=span class="ope">)[a-zA-Z0-9\s]*[a-z0-9]+?\.(pl|com|net\.pl|tk|org|org\.pl|eu)|$(?=<\/span>)$
于 2012-12-30T13:01:10.913 に答える