以下に一致する正規表現が必要です。
文字列: "Hello #world it is #party time#"
一致: "world"、および "party time"
正規表現で遊んでいる間、どちらか一方しか一致できず、両方は一致しません。これは可能ですか?
現在のセットアップ方法では、これに対する解決策はありません。# を「ストップ ギャップ」として使用することと、間隔をあけない単語と間隔を空ける単語の両方に一致させたい場合には、あいまいさがあります。問題はスペースです..値に応じて、有効な文字と無効な文字の両方であり、どちらがどちらであるかを判断する方法は他にありません。
複数の正規表現に分解することはできません。最初にそのようにしようとすると、#([^#]+)
と が一致#world
し#party
ます。代わりに最初に実行しようとすると、#([^#]+)#
一致しworld it is
ます。ミックスに否定的な後読みを投げても、#((?:(?<!\b).)+)#
一致しますworld it is #party time
これを解決するには、次のいずれかを行う必要があります
#([^#]+)#
#([^\b]+)
(これは、スペースを交換するものによって異なる場合があります)