First name:の後にテキストを抽出するための REGEX を作成しようとしていますがLast name:、Email:ラベルは含まれていません。
これがタグ間の私のテキストです。
<MyText>
First name: Chris
Last name: Jones
Email: cj@dsf.com
</myText>
私はこのようなもので遊んでいます:/(Last name:).*?しかし、それはうまくいきません. これを解決する方法を知っている人はいますか?
私は実際にあなたのスクリプト言語を知りません (REGEX のサポートは異なる場合があります)。しかし、このようなものはうまくいくはずです:
/^.*?:(.*?)$/m
いくつかの説明:
m修飾子 ( //m) を含む正規表現は、文字列の先頭と末尾ではなく、各行の先頭と末尾に一致すること^を意味し$ます。
その.*?:部分は、、、などに一致Last name:します。First name:かっこ ( ()) の間にないため、これはキャプチャされません。
この(.*?)部分は、コロン ( :)の後にあるすべてに一致し$、その後に が配置されているため、行末まですべてに一致します。括弧内にあり、キャプチャされることを意味します。
編集に答えるには、これを使用します。
/^First name: (.*?)$/m
/^Last name: (.*?)$/m
/^Email: (.*?)$/m
.NET Regex では、肯定的な後読みアサーションを使用できます。
new Regex(@"(?<=Last name:).*");
ただし、コンテキストによっては注意が必要な場合があります。JavaScript 正規表現エンジンは後読みアサーションをサポートしていないため、たとえば、このクライアント側を ASP.NET RegularExpressionValidator で使用することはできません。
この正規表現を試してください:
/^.*?: (.*)$/