1

私はこの入力を持っています:

stuff (2+13:02)
more stuff (20:32)
more more stuff (8+23:00)

2+オプションであり、まったく異なる値を表すため、次の正規表現を書きました。

/(((?:(\d)?+?)(\d+:\d+))/g

$1は常に の前の数字であり、+残りの数字をグループ化する必要がありますが、常にそうなるとは限りません。の例では、となります。どうすれば と を作ることができますか?:$2(20:32)$12$20:32$1 undef$2 = 20:32

何か案は?

ありがとうございました!

4

1 に答える 1

6

?オプションにしたいグループの後に toを移動してみてください。+また、通常、リテラルに一致させたい場合はエスケープする必要があります+

/(?:(\d)\+)?(\d+:\d+)/g

これは次のように一致します:

  • オプションの非キャプチャ グループ:
    • グループ 1 でキャプチャされた 1 つの数字
    • リテラル+
  • 1 つ以上の数字の後に が続き:、その後に 1 つ以上の数字が続き、グループ 2 に取り込まれます
于 2013-10-17T22:06:39.230 に答える