ban*_*skt 5 php regex preg-match
目前,我正在使用这个:
if (preg_match ('/^[a-zA-Z0-9_]+([a-zA-Z0-9_]*[.-]?[a-zA-Z0-9_]*)*[a-zA-Z0-9_]+$/', $product) ) {
return true;
} else {
return false
}
Run Code Online (Sandbox Code Playgroud)
例如,我想匹配:
pro.duct-name__pro.duct.namep.r.o.d_u_c_t.n-a-m-e但我不想匹配:
pro..ductname.productname--productname.-productname答案是
/^[a-zA-Z0-9_]+([-.][a-zA-Z0-9_]+)*$/
Run Code Online (Sandbox Code Playgroud)
如果只允许字符串包含.-和-.不匹配.无论如何,你为什么要让它们匹配?但是如果你真的需要这些字符串来匹配,那么可能的解决方案就是
/^[a-zA-Z0-9_]+((\.(-\.)*-?|-(\.-)*\.?)[a-zA-Z0-9_]+)*$/
Run Code Online (Sandbox Code Playgroud)
单个.或-第一个正则表达式由交替序列替换,.并且分别-以任一个.或-任选后续-.或.-成对开始,任选地随后是-或.分别对应,以允许偶数个交替的字符.这种复杂性可能是一种过冲,但目前的规范似乎需要这种复杂性.如果2交替的最大.和-是必需的,正则表达式变为
/^[a-zA-Z0-9_]+((\.-?|-\.?)[a-zA-Z0-9_]+)*$/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19291 次 |
| 最近记录: |