Mixrelax 发表于 2020-3-5 18:32:05

正则如何匹配指定长度的数字{}?

本帖最后由 Mixrelax 于 2020-3-5 19:08 编辑

$Filename = '00001403255-【123】-&#%【_“人机交互”%3A重构新闻专业主义的法律问题与伦理逻辑】'
$PrintParam = StringRegExp($Filename, '(\d{9})-.*?-&#%', 1)
If $PrintParam <> 0 Then
      $arr_strSplit = StringSplit($PrintParam, '')
      ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $PrintParam = ' & $PrintParam & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
EndIf

我这个正则\d{9}想从前往后匹配9个数字,可是它怎么是从后往前匹配的呀?
又比如我\d{3}匹配的结果是最后面的三位数字255,而不是我期望的前三位000。

又比如我\d{9}匹配的结果是后9位001403255,而不是我期望的前九位000014032。





user3000 发表于 2020-3-5 19:14:15

'(\d{9}).*'

Mixrelax 发表于 2020-3-5 19:28:14

本帖最后由 Mixrelax 于 2020-3-5 19:30 编辑

user3000 发表于 2020-3-5 19:14

$PrintParam = StringRegExp($Filename, '(\d{9}).*-【(.*?)】-【?(.*?)】?&#%【(.*?)】$', 3)
_ArrayDisplay($PrintParam)

或者

$PrintParam = StringRegExp($Filename, '(\d{9}).*-.*?-.*?&#%.*?$', 1)
ConsoleWrite($PrintParam)
页: [1]
查看完整版本: 正则如何匹配指定长度的数字{}?