間のビットを見つけるために、正規表現:どのように次の文字列で「<>」メールで
ジェイソン<[email protected]>私は角度の内側の部分を抽出することができますどのように
角かっこ。 私は<を試しましたが、うまく動作しませんでした。
アイデア? 私はpreg_match()をPHPで使用しています。
間のビットを見つけるために、正規表現:どのように次の文字列で「<>」メールで
ジェイソン<[email protected]>私は角度の内側の部分を抽出することができますどのように
角かっこ。 私は<を試しましたが、うまく動作しませんでした。
アイデア? 私はpreg_match()をPHPで使用しています。
<(.*?)>
を正規表現として使用します。
user502515は、あなたが望む正規表現をすでに指定しています。私はあなたの正規表現<\w>
が機能しなかった理由を追加したい
:
\w
は、文字クラス[a-zA-Z0-9_]
の略であり、そのクラスからの任意の文字に一致します。あなたが同封する必要があるパターンに一致する文字列を抽出したいので、ゼロ以上の
ための1つまたはそれ以上と
*
ため
+
:あなたは数量詞を使用する必要がある複数の文字を一致させるにはカッコ内のパターンはキャプチャされるように(..)
です。 今すぐあなたの元のタスクが<..>
間の文字列を抽出することだった、char型のクラス\w
としての仕事をしない正規表現<(\w+)>
は@
が含まれていません。
これにマッチさせるには、正規表現.*
を任意の文字列(改行なし)にマッチさせます。
したがって、正規表現<(.*)>
は角かっこの間の任意の文字列に一致してキャプチャします。
一致が欲しいので、入力文字列がfoo<[email protected]>, bar<bar.com>
の場合は、[email protected]>, bar<bar.com
を抽出します。これを修正するには、.*
の末尾に?
を追加して一致を非誠実にします。<(.*?)>
これは、特に具体的な質問に直接答えるわけではありませんが、* why *を説明することで特に助けになることを望むアップホートに値するものです。ありがとうございました。 – eyelidlessness
ありがとうございます。私はあなたに教える時間をとっていただきありがとうございます。 – Jason
「<([^>」+)> 'を使用します。それはより速くなるでしょう。 –