我需要一些帮助。我试图想出一个匹配一串数字的正则表达式。我希望字符串从我所拥有的字符串的位置值开始匹配。
这是我有的字符串
01102000000000001A40000000200000000000100012064000100000000000000
我希望正则表达式从字符串的第20个值开始或直接在A4之后匹配。此外,我想匹配字符串的第20个值后的第一个说10位数。我尝试了一些他们没有真正工作的东西。想看看我能不能在这里得到一些想法。
答案 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
答案 1 :(得分:2)
正则表达式将前19个字符与A4相匹配并将它们扔掉,然后将10个数字捕获到一个组中:
.{19}(\d{10})
http://regex101.com/r/cO9bE7/1
(我不知道它是否与TCL兼容)。