0

次のような文字列があります。blah Wt 10.35 kg blah

そして私は使用しています:(?<=Wt)(.*?)(?=kg)

重量の値 (Wt と kg の間) を取得するには、どちらかの側から空白を引きます。

式を微調整して、空白ではなく値を返す方法を教えてください。

4

3 に答える 3

1

とにかくグループを使用しているので、非キャプチャグループを追加するだけです:

(?<=Wt)(?:\s*)(.*?)(?:\s*)(?=kg)

\s*0 個以上の空白文字に一致します。

于 2013-07-16T09:20:35.033 に答える
1

使ってみてください(?<=Wt)\s+(.*?)\s+(?=kg)

\s+ は空白を削除し、値だけを残す必要があります。

ドキュメンテーション

于 2013-07-16T09:21:18.453 に答える
1

ルックアラウンドにスペースを入れます。

(?<=Wt\s*)(\S+)(?=\s*kg)

.net フレームワークを使用しているため、可変長の後読みを使用できます (他の正規表現では禁止されていることがよくあります)。

\s白い文字 (スペース、タブ、改行) の文字クラスです。

\S含まれていないすべてを意味します\s

\S+代わりに.*?、怠惰な量指定子を避け、ターゲット部分文字列の周りのスペースを削除するために使用しました。

于 2013-07-16T09:21:24.800 に答える