我尝试了以下代码。但是,结果不是我想要的。
$strLine = "100.11 Q9"
$sortString = StringRegExp ($strLine,'([0-9\.]{1,7})', $STR_REGEXPARRAYMATCH)
MsgBox(0, "", $sortString[0],2)
输出显示100.11
,但我想要100.11 9
。如何使用正则表达式以这种方式显示它?
答案 0 :(得分:0)
$sPattern = "([0-9\.]+)\sQ(\d+)"
$strLine = "100.11 Q9"
$sortString = StringRegExpReplace($strLine, $sPattern, '\1 \2')
MsgBox(0, "$sortString", $sortString, 2)
$strLine = "100.11 Q9"
$sortString = StringRegExp($strLine, $sPattern, 3); array of global matches.
For $i1 = 0 To UBound($sortString) -1
MsgBox(0, "$sortString[" & $i1 & "]", $sortString[$i1], 2)
Next
模式是让2组成为100.11
和9
。
模式将首先匹配任何数字和点的组,直到达到
/s
将匹配空间。然后它将与Q
匹配。第二组
匹配任何剩余的数字。
StringRegExpReplace
用第1组和第2组替换整个字符串
与空间分开。
StringRegExp
将2组作为2个数组元素。
从您喜欢的2种类型的正则表达式中选择1。