使用包含垂直条的正则表达式匹配字符串

时间:2016-08-22 04:11:05

标签: regex

我有:

|123|456|789|

我只能使用正则表达式

捕获|123|
\|(\d*)\|

但不确定如何捕获完整的字符串。我对此很陌生。

我会感谢任何帮助

3 个答案:

答案 0 :(得分:3)

^\|(\d*\|?)*

这应该有效。从垂直条开始,重复数字和可选的垂直条。

答案 1 :(得分:3)

你可以这样做:

^\|[\d|]*
  • ^\|在开始时与文字|匹配,因为|是我们需要转义它的正则表达式令牌

  • [\d|]*匹配任意数字的数字或||内的[]按字面处理

Demo

根据评论,如果最后必须有|,请执行:

^\|[\d|]*\|$

答案 2 :(得分:0)



input:valid{
background-color:green;
}

input:invalid{
background-color:red;
}

<input type="text" pattern="^[\|123\|]*$" value="|123|">
<br/>
<input type="text" pattern="^[\|\0-9\|]*$" value="|123|">
&#13;
&#13;
&#13;