我需要匹配(使用正则表达式)可以是这样的字符串:必需:custodian_{number 1 - 9}_{fieldType txt 或 ssn} 可选:_{fieldLength 1-999}例如: custodian_1_ssn_1 有效 custodian_1_ssn_1_255 有效custodian 或 custodian_ 或 custodian_1 或 custodian_1_ 或 custodian_1_ssn 或 custodian_1_ssn_ 或 custodian_1_ssn_1_ 无效目前我正在处理这个:(?:custodian|signer)_[1-9]?[0-9]_(?:txt|ssn)_[1-9][0-9]?(_[1-9]?[0-9]?[0-9]?)?因为我的正则表达式和我的 api 正在努力接受:custodian_1_txt_1 custodian_1_ssn_1 custodian_1_txt_1_25 5 <---- 与最后一个“5”不匹配有什么想法吗?
3 回答
一只名叫tom的猫
TA贡献1906条经验 获得超3个赞
我建议使用\d
不是你的数字,这是我的代码试试看:-
(?:custodian|signer)_[1-9]?[0-9]_(?:txt|ssn)_[1-9][0-9]?(_[1-9]?\d*)?
我只是\d
在模式的末尾添加了一个值,以在另一个匹配之前匹配所有结束数字。
MM们
TA贡献1886条经验 获得超2个赞
如果您只对最后一位数字感兴趣,这个超级通用的正则表达式可以:
(?:.+)_(\d+)
如果您确实需要匹配整个字符串,则可以这样做:
^(?:custodian|signer)_\d+_(?:txt|ssn)(?:_\d+)?_(\d+)$
- 3 回答
- 0 关注
- 494 浏览
添加回答
举报
0/150
提交
取消