正则表达式在线翻译,正则表达式 英文
帮忙翻译一下这个JS正则
首先解释\1 ,这个可能是 最难的了,表示反向匹配捕获的第一个匹配,即(\w+)
再来是看?: 例如 xy(?:abc|def) 这个形式表 匹配 xyabc 或者 xydef 等同于 xyabc|xydef
以上2 个 不太好理解,其实大多数时候也用不到
单独的 ? 表示前面的字符匹配0或者1次 相当于 {0,1},这个要知道,很多人都用
那么再从头看
(\w+)\s*\/?
即 (\w+)\s*\/{0,1},其中\/ 是一个转义的/ ,(由于js中/符号表示正则的开始和结尾,所以在js中是要转义的)
表示匹配一个 html(xml) 标签头,
或者是自带结尾的标签,例如 span 、span 或者br/、br /
(\w+)\s*\/?(?:\/\1|) 相当于 (\w+)\s*\/?\/\1|(\w+)\s*\/?
即(\w+)\s*\/?\/\1 或者 (\w+)\s*\/?
后面一种已经清楚了,
前面一种 就是说以什么开头就以这个加/ 结尾,例如span/span
我觉得这个正则写的并不好
似乎是在求空标签。
当前的表达式 会匹配 span //span 而不能匹配 span /span ,所以有缺陷
忘记了 还有个 $,是结尾符号
这个正则表达式是什么意思?在线等!!!
您打字时,输入有误吧?
[[0-9]{1,2})$')
应该是
[0-9]{1,2})$')
这个正则表达式的作用:筛选记录,该记录的 “进院日期” 字段符合下面的要求
分析:
^ 匹配字符串开头,$ 匹配字符串结尾。在本文正则表达式中匹配,以数字开头,且以数字结尾的字符串。
[0-9]{4,4}+????????????????????4位数字为一组,至少一组,或多组
[-]+????????????????????????????????连接号,至少一个,或多个
[0-9]{1,2}+? ???????????????? 1位数或2位数为一组,至少一组,或多组
[-]+????????????????????????????????连接号,至少一个,或多个
[0-9]{1,2}? ?????????????????? 1位数或2位数
括号表示将匹配的字符串保留,以便“后向引用”。
按照这个表达式,可能匹配以下例子:
2017-04-26
20172017-----12343-----45
12345678--------544899999999-----------------------00
但我觉的既然是日期,这个正则表达式的本意是匹配下面的格式:
xxxx-x-x
xxxx-x-xx
xxxx-xx-x
xxxx-xx-xx????????????如:2017-04-26
楼主提问中的正则表达式,应当修改一下,从
'^([0-9]{4,4}+[-]+[0-9]{1,2}+[-]+[0-9]{1,2})$'
改为
'^([0-9]{4}-[0-9]{1,2}-[0-9]{1,2})$'
正则表达式怎么理解?百度百科看不懂
(from wiki)In the 1950s, mathematician Stephen Cole Kleene described these models(指自动机) using his mathematical notation called regular sets
然后再regular expression,翻译过来叫正则
-----------------------------------------------------------------
对正则的理解... 排除语法的问题,那就没问题了...
简单的说,就是让机器理解你的意图,与编程差不都,但是他只保留了精华部分,去掉了一下修饰部分。
举例来说 123abcABC 这组字符串,你想要数字部分,那你就跟计算机说,我只要数字部分,帮我提取出来。
而怎么跟他说呢,就是:[0-9]* ,意思就是说,所有 0 至 9 这的字符帮我拿出来,当然,你也可以用其它方式说,比如 所有包含 1234567890 帮我拿出来,那就这么写 [1234567890]* ,或者说,所有数字帮我拿出来 [\d]* 就这么写。
以上三个正则表达式可以得到相同的结果。
-----------------------------------------------------------------
就是让计算机理解你的意图。当然,是使用他懂的语言来告诉他你的意图。
当然,你的意图可以更复杂一些,比如 123abcABC456
你可以说把最前面的数字帮我拿出来:^[\d]* (注:此结果得到的字符是123)
或者说把最后的数字帮我拿出来:[\d]*$ (注:此结果得到的字符是456)
甚至说帮我把大写 A 字符之前的一个字符帮我拿出来:(.{1})A (注:此结果得到的字符是c)
你要做的就是怎么能让计算机听懂你说的话。
E35:No previous regular expression的翻译是:什么意思
No previous regular expression
使用空的搜索模式会引用到上次用到的模式。如果没有上一次搜索,那么就会失败。
No previous substitute regular expression
在 “:substitute” 命令里,模式里使用的 ‘~’ 字符会被替换成上次用到的模式。如果这个命令还没用过,就会失败。见 |/~|。
正则表达式
(?! 其前的表达式后面不紧连着这个表达式表示的字符串
.* 任意个任意字符
([A-K]) 字符A-K,捕获组
.* 任意个任意字符
\1 标号为1的捕获组内容
)
整个正则的意思是,字符串由A-K的字符组成,字符串长度为3,字符串中的字符不能有重复。