我需要将模式匹配为字符串- abcd:23415
- abcd:23
,后跟冒号(:)和任意数量的整数。这种模式不能重复。
例如, 有效模式 - >
- asda:4535
- abcd
- abcdabcd:324
- abcd:234abcd234
- abcd:234:abcd:234
无效模式 - >
((((abcd){0,1}):([0-9].+)){0,1})[^:]
我尝试了以下内容:
struct DOT11_FrameHdr{
// Should Be Actually
UInt8 frameType; // - -
UInt8 frameFlags; // 2 2
UInt16 duration; // 2 2
Mac802Address destAddr; // 6 6
Mac802Address sourceAddr; // 6 6
Mac802Address address3; // 6 6
UInt16 fragId: 4, // - -
seqNo: 12 ; // 2 2
char FCS[4]; // 4 4
//---------------------
// 28 28
它不起作用。我需要在ng-pattern中传递它。考虑到默认情况下ng-pattern附加^并在结尾添加$,请建议正确的模式。
答案 0 :(得分:0)
如果最后的数字是可选的,请尝试/^abcd:\d*$/
作为模式。
如果必须使用最后的数字,请尝试/^abcd:\d+$/
。
一些基本细节:
^
开始测试字符串
abcd:
与静态字符串片段完全匹配
\d
匹配数字
*
出现零次或多次
+
出现一次或多次
$
测试字符串的结尾
答案 1 :(得分:0)
您的正则表达式包含.+
子模式,允许在:
和非 - :
之间的换行符之外的任何一个或多个符号。看起来它不是你需要的。
请注意,您实际上可以将正则表达式(而不仅仅是字符串)传递给ng-pattern
。
因此,如果您在开头有abcd
,那么:
后跟一个或多个数字,请使用
ng-pattern="/^abcd:\d+$/"
请参阅regex demo
查看JSFiddle。