tcl regexp根据字符串的索引匹配一串数字

时间:2014-07-16 16:22:13

标签: regex tcl

我需要一些帮助。我试图想出一个匹配一串数字的正则表达式。我希望字符串从我所拥有的字符串的位置值开始匹配。

这是我有的字符串

01102000000000001A40000000200000000000100012064000100000000000000

我希望正则表达式从字符串的第20个值开始或直接在A4之后匹配。此外,我想匹配字符串的第20个值后的第一个说10位数。我尝试了一些他们没有真正工作的东西。想看看我能不能在这里得到一些想法。

2 个答案:

答案 0 :(得分:3)

如果TessellatingHeckler的答案中的链接过时,我将使用实际代码添加另一个答案。此问题至少有三种解决方案(假设要搜索的字符串位于变量s中):

TessellatingHeckler的解决方案:

lindex [regexp -inline {.{19}(\d{10})} $s] 1

另一个regexp解决方案:

regexp -inline -start 19 {\d{10}} $s

string range解决方案:

string range $s 19 19+9

文档:lindexregexpstring

答案 1 :(得分:2)

正则表达式将前19个字符与A4相匹配并将它们扔掉,然后将10个数字捕获到一个组中:

.{19}(\d{10})

http://regex101.com/r/cO9bE7/1

(我不知道它是否与TCL兼容)。