我尝试拆分参数(作为字符串接收)以便能够使用这些值来执行某些操作。例如,字符串将是:
DB415.DBX12.3
我要求将它拆分为:
/(?:^[A-Z]+)/
/^(?![A-Z]+)(?:\d+)/
/^(?!^[A-Z]+)(?!\d+)(?!\.)(?:[A-Z]+)/
任何有关3,4和5的帮助都会非常有帮助!
编辑:这是针对Javascript的,理想情况下,我想在数组中获取这5个参数。
答案 0 :(得分:6)
您可以使用匹配的正则表达式:
foreach ($files as $file) {
if (preg_match('/RMA_[0-9\-_]+.jpg/i', $file) {
...more code here...
}
}
请参阅regex demo
我只是遵循你的逻辑,正则表达式匹配你枚举的所有步骤。
JS演示:
/^(\D*)(\d+)\.(\D*)(\d+)\.(\d+)$/

关于正则表达式的评论:
var re = /^(\D*)(\d+)\.(\D*)(\d+)\.(\d+)$/;
var str = 'DB415.DBX12.3';
var res = str.match(re);
if (res) {
document.body.innerHTML = "<pre>" + JSON.stringify(res, 0, 4) + "</pre>";
}
匹配除数字\D
匹配任何数字\d
匹配零个或多个数字(如果必须至少有一个,请替换为\D*
)\D+
匹配文字点。如果可以有多个点,比如连字符,则需要替换为\.
这样的字符类,最后保留连字符。