【发布时间】:2018-07-17 01:27:07
【问题描述】:
我正在尝试编写一个正则表达式来匹配“ismU”标志。 要求如下: 1) 每个字符最多只出现一次 2)字符可以按任意顺序出现:“is”、“si”、“mi”、“smi”、“uims”
要求1)导致“?”量词,和 2) 导致 "|"交替。
“i?|U?|m?|s?”只能适用于长度为 1。
"[imsU]{1,4}" 可以适用于长度为 4,但它接受重复的标志(例如,“ii”)
测试用例为真:[ "i", "im", "mi", "Ums", "iUsm"]; 测试用例为 False:[ "I", "mm"].
【问题讨论】:
-
使用字符串函数可能更容易。
-
带有反向引用:
^(?!.*(.).*\1)[imsU]+$ -
@CasimiretHippolyte 我喜欢它。发表您的评论作为答案。
标签: regex