假设我有100个字符行。我有一个REGEX正确匹配,一个字符串,让我们说,在中间25个字符(既不是在开头,也不是在末尾)。如何在中间匹配以上25个字符中的最后5个字符?
当前REGEX:(dBm)\s+.{7})(\b)
实例:
台词:
Tx输出功率(dBm) -2.31 3.50 0.50 -8.20 -12.20
Rx光功率(avg dBm) -3.72 3.50 0.50-14.40-18.39
我将以下内容与我的REGEX -(DBm)\s+.{7}(\b)匹配
Tx输出功率(dBm) -2.31 3.50 -8.20 -12.20
Rx光功率(avg dBm) -3.72 3.50 -14.40-18.39
我真正感兴趣的是:
Tx输出功率(dBm) -2.31 3.50 -8.20 -12.20
Rx光功率(avg dBm) -3.72 3.50 -14.40-18.39
谢谢
发布于 2022-08-11 11:11:18
发布于 2022-08-11 16:23:56
您可以使用一个捕获组:
\([^()]*dBm\)\s+(-?\d+(?:)\.\d*)\b解释
\(匹配([^()]*匹配0+字符( (或)除外)dBm\)匹配dBm)\s+匹配1+空格字符( Capture group 1 -?\d+(?:)\.\d*匹配可选的-,然后用可选的十进制部分匹配1+数字)闭组1\b阻止部分单词匹配的单词边界如果只想与Java匹配:
(?<=\([^()]{0,100}dBm\)\s{0,100})-?\d+(?:)\.\d*\b在Java中,使用双反斜杠:
String regex = "(?<=\\([^()]{0,100}dBm\\)\\s{0,100})-?\\d+(?:)\\.\\d*\\b";https://stackoverflow.com/questions/73317219
复制相似问题