我有一个看起来有点像这样的字符串:blah Wt 10.35 kg blah
我正在使用:(?<=Wt)(.*?)(?=kg)
要获得重量的值(在 Wt 和 kg 之间) - 但它也会从两侧拉出空白。
谁能告诉我如何调整表达式以返回值而不是空白。
由于您无论如何都在使用组,因此您可以只添加一个非捕获组:
(?<=Wt)(?:\s*)(.*?)(?:\s*)(?=kg)
\s*
将匹配零个或多个空白字符。
将空格放在环视中:
(?<=Wt\s*)(\S+)(?=\s*kg)
由于您使用 .net 框架,您可以使用可变长度的lookbehind(这在其他正则表达式风格中通常被禁止)
\s
是白色字符(空格、制表符、换行符)的字符类
\S
表示所有不在其中的\s
我使用\S+
而不是.*?
避免使用惰性量词,并修剪目标子字符串周围的空格。