0

私のテストケースはこれです:this is a sentence. reviewed: name DEFECT: none

後で何かをキャプチャする必要がありますが、それが表示さreviewed:れたら停止しますDEFECT:

reviewed: (.+)(?=\sTASK|\sDEFECT)

name上記は正しくキャプチャされます。しかし、問題は、DEFECT:このようにアフターマッチがない場合です

this is a sentence. reviewed: name

一致しません。正規表現をに変更するとき

reviewed: (.+)(?=\sTASK|\sDEFECT)?  

また

reviewed: (.+)(?=\sTASK|\sDEFECT)*

マッチはすべてをキャプチャしますname DEFECT: none。単語を見た後、一致を停止するにはどうすればよいですか?DEFECT: 同時に、単語がまったく存在しない可能性があります。

私はまた、運が悪いと次のことを試しました:

reviewed: (.+)?(?=\sTASK|\sDEFECT)?
              ^

貪欲にならないように。誰でも助けることができますか?

4

1 に答える 1

2

この場合、次のように、文字列の末尾を $ に一致させることができます。

/reviewed: (.+?)(?=DEFECT:|$)/
于 2013-08-30T09:07:20.633 に答える