私はregexpにマッチした文字列を、空白で囲まれた文字列の途中に置かなければなりません。文字列中の唯一のものでなければなりません。Perl regexpを使って、文字列の最後か最後にスペースで区切られた単語をどのように一致させるか?
例: シーケンス'qwe45rty'
が私たちが探しているものとしましょう。私は、これらの文字列のすべてにプラスを取得することができるようにしたい:
'qwe45rty'
'qwe45rty blabla'
'smth qwe45rty blabla'
'smth qwe45rty'
' qwe45rty '
しかし、これらのどれも:私が思い付いたベスト
'aaqwe45rty'
'qwe45rtybb'
'aaqwe45rtybb'
このようなsmth:
if (($a =~ /\s+$re\s+/) or
($a =~ /^$re\s+/) or
($a =~ /\s+$re$/) or
($a =~ /^$re$/) )
{
# do stuff
}
これは最善の方法ではありません。
お勧めはありますか?例えば
$a =~ /(?:\A|\s)$re(?:\s|\Z)/;
:
私は正規表現の中で 'または'について知っていますが、 '^'と '$'という文字列アンカーは使用できないと思いました。 – bazzilic
@bazzilic私はこの方法で問題なくアンカーを使用しました。唯一の問題は、目的を照合するためにかっこを使用している場合、かっこがカウントに追加されることです。この問題を回避するには '(?:^ | \ s +)'を使うことができます。 –
あなたの解決策を選んだので、文字列アンカーをPerl正規表現の他の制御シーケンスとして使用できることを教えてくれてありがとう! – bazzilic