正则表达式。 ^node\/\d+$ 是匹配哪些格式,请解释一下过程。
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
给定一个正则表达式和另一个字符串,我们可以达到如下的目的:
1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”):
2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。
正则表达式应用——实例应用
验证用户名和密码:("^[a-zA-Z]\w{5,15}$")正确格式:"[A-Z][a-z]_[0-9]"组成,并且第一个字必须为字母6~16位;
2.验证电话号码:("^(\d{3,4}-)\d{7,8}$")正确格式:xxx/xxxx-xxxxxxx/xxxxxxxx;
3.验证手机号码:"^1[3|4|5|7|8][0-9]{9}$";
4.验证身份证号(15位):"\d{14}[[0-9],0-9xX]",(18位):"\d{17}[[0-9],0-9xX]";
5.验证Email地址:("^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$");
6.只能输入由数字和26个英文字母组成的字符串:("^[A-Za-z0-9]+$");
7.整数或者小数:^[0-9]+([.][0-9]+){0,1}$
8.只能输入数字:"^[0-9]*$"。
9.只能输入n位的数字:"^\d{n}$"。
10.只能输入至少n位的数字:"^\d{n,}$"。
if(preg_match('/^node\/\d+$'/, $string))
完整匹配类似下列的字符串node/1
node/123423
node/243
^匹配字符串开始位置
$匹配字符串结束位置
\d+ 意为一个或多个数字(+是重复一次或多次的意思)
所以你的正则所匹配的字符串为: 必须以"node"开头,并接着是"/"字符,然后以不少于一个一个的数字结尾.
说以不匹配下列类型的字符串
node/1/
node/1a
1node/1
3.'^node/([0-9]){1,}$' 这里的"/"不用转义,故其意义为匹配: 已"node/"开头, 然后是0-9中的任意数字重复1次或1次以上,并结束
所以 "node/2" 是可以被匹配的
注: ^node/\d+$ 这个才是真正的正则表达式,是一个表达式. 当它作为一个字符串在其他语言里时, 因为一些字符在那门语言里是特殊字符,所以需要转义
如在php:
$reg = '/^node\/\d+$/';
这是一个正确的表达式, 因为"/"在这里被作为了正则表达式的定界符了,若是选用"|"为定界符,那么这样写也是正确的
$reg='|^node/\d+$|';
node/123
node/000
node/010
node/+失少一个数字
^node\/\d+$
node\/是个固定样式既node/
二后面的\d则是匹配数字所有数字都符合
以上两个只匹配一次
如果想让这个通过node/1/node/2则需要改变表达式为
^(node\/\d+\/?)+$
而^node/([0-9]){1,}$
与以上相同只是后面([0-9]){1,}标示匹配0-9至少多次
水支厄多: 完整匹配类似下列的字符串 node/1 node/123423 node/243 ^匹配字符串开始位置$匹配字符串结束位置 \d+ 意为一个或多个数字(+是重复一次或多次的意思) 所以你的正则所匹配的字符串为: 必须以"node"开头,并接着是"/"字符,然后...
蠡县13827783060: 关于JS正则的一个问题?
水支厄多: 你这种情况比较复杂!^表示开头,$表示结束,\d表示数字/^(\d)$/表示匹配数字后面的,0就是0,$1表示匹配正则表达式所匹配到的字符串的第一部分(这句不知道该怎样表达)看上面的意思,应该是给数字前面加1个零
蠡县13827783060: (^|&)在正则表达式里是什么意思 - ?
水支厄多: { 标记限定符表达式的开始,请使用 \{.| 指明两项之间的一个选择.要匹配 |,请使用 \? 字符、或八进制转义符;\n' 匹配换行符.要匹配 .;,而 ',请使用 \( 和 \、或原义字符;.要匹配 $ 字符本身;\(' 则匹配 "上面的说错了 ( ^ | ) ...
蠡县13827783060: 正则表达式"(^|&)" ,什么意思? - ?
水支厄多: ^匹配字符串开头,&就是&字符(^|&)匹配字符串开头或者&字符,如果其后还有正则,那么必须出现在字符串开始或&字符之后
蠡县13827783060: ^{指令}#(.*)的正则表达式是什么意思 - ?
水支厄多: 查找以 {指令}# 开头的字符串 一般正则中不能写中文,一般大括号要用转义字符\{ \} ^代表字符串开始位置, . (点)匹配任意字符 * 匹配0个或多个前面的字符
蠡县13827783060: 正则表达式字符串匹配规则 - ?
水支厄多: 如果将 String testStr = "ABCGTYU";改为 String testStr = "ABCG|TYU"; 得到的结果就不一样了 中括号表示字符集,以'^'开头表示否定,所以"[^GC]"表示所有除'G'和'C'以外的字符,因此用replaceal替换成空串,会保留G和C字符"[^G|^C]"表示的是除了'G','|','^','C'四个字符以外的字符,replaceall会保留这四个字符,注意在中括号中'|'就表示'!'这个字符,而不是a或者b的意思
蠡县13827783060: /^.[^:#\[\.,]*$/正则表达式在jquery中的意思 - ?
水支厄多: 任意字符开头,除了:#[.,以外的字符组成并结尾的字符串 ^只有在[]中,且紧临[时才是指不包含的意思 写在第一个位置,是以某个字符开头的意思
蠡县13827783060: javascript中正则表达式判断一个字符串是否同时含有大小写字母和数字 - ?
水支厄多: if (/[a-z]/.test(str) && /[A-Z]/.test(str) && /[0-9]/.test(str)){ // 你的代码 }
蠡县13827783060: javaScript 正则表达式,匹配一个“ * ” - ?
水支厄多: *的正则/\*/这样写是对的 你的代码问题在于if中条件逻辑不正确 应该使用并且&&,译为当两个匹配都不正确时才返回false 推荐一种简便写法:return reg.test(str) || reg2.test(str); 不懂请追问~ 希望对您有帮助~ By Billskate
蠡县13827783060: linux正则表达式 - ?
水支厄多: sed 's/#.*$//g' 把#开头的行替换成空行 sed '/^$/d' 把空行删掉 s是替换 g是指替换掉所有符合条件的 d是删除 ^行的开头$行的结尾.除 "\n" 之外的任何单个字符*前面的子表达式零次或多次