我有一个看起来像这样的字符串:blah Wt 10.35 kg blah
我正在使用:(?<=Wt)(.*?)(?=kg)
获得重量值(在Wt和kg之间) - 但它也从两侧拉出空白区域。
任何人都可以告诉我,我可以如何调整表达式,只是给我回到价值而不是空白区域。
答案 0 :(得分:1)
由于您无论如何都在使用群组,因此您可以添加一个非捕获群组:
(?<=Wt)(?:\s*)(.*?)(?:\s*)(?=kg)
\s*
将匹配零个或多个空白字符。
答案 1 :(得分:1)
答案 2 :(得分:1)
将空格放在外观中:
(?<=Wt\s*)(\S+)(?=\s*kg)
由于您使用.net框架,您可以使用可变长度的lookbehind(在其他正则表达式中经常被禁止)
\s
是白色字符(空格,制表符,换行符)的字符类
\S
表示\s
我使用\S+
代替.*?
来避免延迟量词,并修剪目标子字符串周围的空格。