我希望解析自定义降价文本,例如下面的示例。
1
Post:1
Image:1|thumb
Image:1|thumb|html classes here
1|thumb|html classes here
一般格式:ModelName:ID|image_size|html classes
冒号(:)之后的所有内容都是可选的。请注意,id也可以是字符串。在最后一个管道之后可以有许多空格分隔的css类。这就是我到目前为止所做的:
^([\w\.]+)?(?::([-\w\d\.]+))(?:\|(\w+))?(?:\|([-\w\s\d]+))?$
这个正则表达式有几个问题,我无法弄清楚如何修复
1
和Post:1
已正确匹配。答案 0 :(得分:1)
你可以用
来做(?:(\w+):)?(\d+)(?:[^|\n]*\|([^|\n]*)(?:\|(.*))?)?
它将捕获第1组中的第一个标记,第二组中的ID,第3组中的图像大小以及第4组中的类。
首先它捕获标记(可选),然后是数字。接下来是一个也是可选的组,用于扫描|
,然后将所有内容捕获到另一个|
或行尾。如果发现|
,则将所有内容捕获到行尾。