我需要一个执行以下操作的正则表达式: 下面是HTML输入字段的名称:
lm[0][ti]
我需要找到基本名称(“lm”)。只有如果名称包含括号我需要在第二个括号中找到字符串(“ti”)。
使用以下正则表达式可以轻松获得它:
([a-zA-Z\d_]+)\[?([0-9]*)\]?\[?([a-zA_Z\d_]+)\]?
它匹配我需要的所有部分。
Array
(
[0] => lm[0][ti]
[1] => lm
[2] => 0
[3] => ti
)
但是如果HTML输入名称只是“lm”,那么使用这个regexp我无法确定数组中的第4项是有效名称。数组看起来像这样:
Array
(
[0] => lm
[1] => l
[2] =>
[3] => m
)
“m”对我无效,我想得到这个数组:
Array
(
[0] => lm
[1] =>
[2] =>
[3] =>
)
或者
Array
(
[0] => lm
)
您可以在此处测试正则表达式: http://regexp-tester.mediacix.de/exp/regex/
感谢您寻找合适的正则表达式的支持......
答案 0 :(得分:1)
试试这个:
(\w+)(?:\[(\d+)\])?(?:\[(\w+)\])?
输入:
lm[0][ti]
输出:
输入:
lm
输出: