从字符串中获取 2 个字符之间的值
Fetch value between 2 characters from a string
我得到以下字符串作为输出
RX Power: -3.4 dBm (460.9uW)
我尝试了下面的代码,但得到的输出类似于
: -3.4 d
我要输出
-3.4
$pattern = '(?s)\:.*? d+'
[regex]::Matches($RXTX_Data[0], $pattern).Value
请让我知道这里缺少什么
尝试 \s(-?\d+.?\d+)\s
你的模式。
- \s 表示数字两边的空白字符
- -?用于检查“-”是否在号码组中
- .?用于检查“.”在号码组
- \d+ 匹配号码组中的1个或多个号码
- () 用于指定您要捕获的组,即数字组
它在 https://regex101.com 对我有用。如果你还没有听说过,这是练习正则表达式的好地方。
(假设您要获取 dBm 值)
您可以 select 使用关键字之间的文本。
RX Power:(.*)dBm
这将为您提供包含空格(前导和尾随)的答案 - 但您可以轻松删除这些空格。
$pattern = 'RX Power:(.*)dBm'
[regex]::Matches($RXTX_Data[0], $pattern).Value.Replace(" ","")
我确定您也可以在正则表达式中删除它,但我只能使用以下方法删除前导空格:
RX Power:\s*(.*)dBm
我得到以下字符串作为输出
RX Power: -3.4 dBm (460.9uW)
我尝试了下面的代码,但得到的输出类似于
: -3.4 d
我要输出
-3.4
$pattern = '(?s)\:.*? d+'
[regex]::Matches($RXTX_Data[0], $pattern).Value
请让我知道这里缺少什么
尝试 \s(-?\d+.?\d+)\s
你的模式。
- \s 表示数字两边的空白字符
- -?用于检查“-”是否在号码组中
- .?用于检查“.”在号码组
- \d+ 匹配号码组中的1个或多个号码
- () 用于指定您要捕获的组,即数字组
它在 https://regex101.com 对我有用。如果你还没有听说过,这是练习正则表达式的好地方。
(假设您要获取 dBm 值)
您可以 select 使用关键字之间的文本。
RX Power:(.*)dBm
这将为您提供包含空格(前导和尾随)的答案 - 但您可以轻松删除这些空格。
$pattern = 'RX Power:(.*)dBm'
[regex]::Matches($RXTX_Data[0], $pattern).Value.Replace(" ","")
我确定您也可以在正则表达式中删除它,但我只能使用以下方法删除前导空格:
RX Power:\s*(.*)dBm