我想弄清楚如何匹配以下条形码字符串:
Invoice CO1234 1234567890 06.01.2016 06.01.2016 USD 6.72 1 1
Elements explanation by possition:
1st - document type
2nd - document related number
3rd - document related number
4th - date
5th - date
6th - Currency
7th - Sum
8th - page number ( i need the regex to match when the page is equal to "1")
9th - total pages
除 总和之外的所有都是相同的长度。总和可能会增长到100或1000 ......
在这种情况下是否可以匹配页码?
注意:向后匹配字符串不是一个选项,因为那里 可能是一些附加的文件到上面的那个和 字符串会变得更长。
答案 0 :(得分:0)
这个正则表达式将起作用
IllegalArgumentException
<强> Regex Demo 强>
您似乎想要(\d+)\s+\d+$ <-- Match in 1st capturing group
。在这种情况下,您可以使用
forward matching
从您之前的问题看,您正在使用^(?:[^\s]+\s){7}([^\s]+) <-- Match in 1st capturing group
。在这种情况下,您可以使用此
vbscript
<强> Idoene Demo 强>
答案 1 :(得分:0)
您不需要正则表达式来实现您想要的效果。您可以在字段分隔符''上拆分字符串,然后取第8个字段。 例如,使用python:
input = "Invoice CO1234 1234567890 06.01.2016 06.01.2016 USD 6.72 1 1"
input.split(' ')[7]
或者,如果你真的想使用正则表达式,你可以使用类似的东西:
import re
input = "Invoice CO1234 1234567890 06.01.2016 06.01.2016 USD 6.72 1 1"
re.search(r"^([^ ]* ){7}([^ ]*)", input).group(2)