Regex 如何正则化字符串
是否可以使用正则表达式检查:Regex 如何正则化字符串,regex,regex-group,regex-alternation,Regex,Regex Group,Regex Alternation,是否可以使用正则表达式检查: 完整的字符串是数字和 第一个字符是7或8,那么字符串的完整长度必须是11或 第一个字符是1,那么字符串的完整长度必须是10 或第一个字符是0,然后是字符串的完整长度 必须是18,字符8上必须是8或7或字符9上 必须是1 我希望你能明白我的意思。希望这些例子能帮助你理解我的意思 这是我的解决方案(无法完全工作->我不知道如何检查以0开头的字符长度是否为18个字符位置8上的字符必须为7或8或位置9上的字符必须为1): 例如: 85556987456->以8开头,长度为
- 85556987456->以8开头,长度为11->匹配
- 75556987456->以7开头,长度为11->匹配
- 1555698745->以1开头,长度为10->匹配
- 000000085556987456->以0开头,长度为18,第8位为8->匹配
- 000000075556987456->以0开头,长度为18,第8位为7->匹配
- 000000001556987456->以0开头,长度为18,第9位为1->匹配
^(?:[78]\d{10}|1\d{9}|0\d{6}(?:[87]\d|\d1)\d{9})$
见
详细信息
-字符串的开头^
-三个备选方案之一:(?:[78]\d{10}1\d{9}0\d{6}(?[87]\d}\d1)\d{9})
-[78]\d{10}
或7
然后是10位数字(总共11位)8
-或|
-1\d{9}
然后是9位数字(总共10位)1
-或|
-0\d{6}(?[87]\d}\d1)\d{9}
,然后是6位数字,第8位数字等于0
或8
和任何一位数字,或任何一位数字和第9位数字等于7
,然后是9位以上的数字(=18位)1
-字符串结束$
^[78][0-9]{10}$
或:^(?[78]\d{10}|[1-69]\d{9})$
非常感谢!不幸的是,我又忘记了一个条件。我已经编辑了原始的帖子,然后试着用给出的示例展示你的最佳表现,并包括你自己的尝试。这可能会让你的问题再次被打开。我用我不完整的解决方案编辑了我的帖子。我认为你不需要到处寻找。只要换一种就行了。
^(?:[78]\d{10}|1\d{9}|0\d{6}(?:[87]\d|\d1)\d{9})$