仅在字母序列和数字序列之间分割字符串一次
我想从可预测格式的字符串中提取两个子字符串。
每个字符串都由字母和数字组成。
输入和输出:
MAU120
=>MAU
和120
MAUL345
=>MAUL
和345
MAUW23
=>MAUW
和23
I want to extract two substrings from a predictably formatted string.
Each string is comprised of letters followed by numbers.
Inputs & Outputs:
MAU120
=>MAU
and120
MAUL345
=>MAUL
and345
MAUW23
=>MAUW
and23
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果您需要
MAU
,您可以执行以下操作:删除末尾的
i
修饰符将使正则表达式区分大小写。If you require the
MAU
you can do:Removing
i
modifier at the end will make the regex case-sensitive.试试这个正则表达式:
PHP 代码:
Try this regular expression:
PHP code:
从字面上看你的例子:
产生:
Taken literally from your examples:
Produces:
当您可以保证先出现一个或多个非数字,然后出现一个或多个数字时,您可以调用 sscanf() 来解析字符串。
与
preg_match()
相比,本机函数具有多种优势。代码:(Demo)
输出:(请注意,数字被转换为整数类型)
如果您的数字可能以零并且您想保留它们,可以使用
%s
而不是%d
来捕获非空格子字符串。如果使用%s
,那么数字将被转换为字符串而不是 int 类型。替代语法:(演示)
When you can guarantee that there will be one or more non-numbers and then one or more numbers, you can call upon
sscanf()
to parse the string.The native function has multiple advantages over
preg_match()
.Code: (Demo)
Output: (notice that the numbers are cast as integer type)
If your numbers might start with zero(s) and you want to retain them, you can use
%s
instead of%d
to capture the non-whitespaces substring. If you use%s
, then the digits will be cast as a string instead of int-type.Alternative syntax: (Demo)