求正则表达式匹配多个字符串,匹配一行,一行少于6个字符?

求一个正则表达式匹配多个字符串匹配日期类型 日期格式为 "yyyy-MM-dd",考虑到要符合多种格式,不受0的影响例如 "" "" "" //前面可以添加任意个0 可以忽略平年和闰年的影响...

}

微信搜索:“二十同学” 公众号欢迎关注一条不一样的成长之路


1)元字符 : 非一般字符,具有某种意义的字符。如 : \bX : \b边界符, 以 X开始的单词
2)正则表达式匹配多个字符串語法大全

将下一字符标记为特殊字符、文本、反向引用或八进制转义符例如,"n"匹配字符"n""\n"匹配换行符。序列"\\"匹配"\""\("匹配"("。

零次或多次匹配前面的字符或子表达式例如,zo* 匹配"z"和"zoo"* 等效于 {0,}。

一次或多次匹配前面的字符或子表达式例如,"zo+"与"zo"和"zoo"匹配但与"z"不匹配。+ 等效于 {1,}

等效于 'o?'。注意:您不能将空格插入逗号和数字之间

当此字符紧随任何其他限定符(*、+、?、{n}、{n,}、{n,m})之后时,匹配模式是"非贪心的""非贪心的"模式匹配搜索到的、尽可能短的字符串,而默认的"贪心的"模式匹配搜索到的、尽可能长的字符串例如,在字符串"oooo"中"o+?"只匹配单个"o",而"o+"匹配所有"o"

匹配除"\r\n"之外的任何单个字符。若要匹配包括"\r\n"在内的任意字符请使用诸如"[\s\S]"之类的模式。

匹配 pattern 并捕获该匹配的子表达式可以使用 $0…$9 属性从结果"匹配"集合中检索捕获的匹配。若要匹配括号字符 ( )请使用"\("或者"\)"。

匹配 pattern 但不捕获该匹配的子表达式即它是一个非捕获匹配,鈈存储供以后使用的匹配这对于用"or"字符 (|) 组合模式部件的情况很有用。例如'industr(?:y|ies) 是比 'industry|industries' 更经济的表达式。

 
 

 

三、常用的正则表达式匹配多个字符串:














(15) "^\w+$"  //由数字、26个英文字母或者下划线组成的字符串


















(34) 元字符及其在正则表达式匹配多个字符串上下文中的行为:
(35) \ 将下一个芓符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符
(36) ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象嘚Multiline 属性^ 也匹配 ’\n’ 或 ’\r’ 之后的位置。
(37) $ 匹配输入字符串的结束位置如果设置了 RegExp 对象的Multiline 属性,$ 也匹配 ’\n’ 或 ’\r’ 之前的位置
(38) * 匹配前面的子表达式零次或多次。
(39) + 匹配前面的子表达式一次或多次+ 等价于 {1,}。
(40) ? 匹配前面的子表达式零次或一次? 等价于 {0,1}。


(43) {n,m} m 和 n 均为非负整数其中n <= m。最少匹配 n 次且最多匹配 m 次在逗号和两个数之间不能有空格。
(44) ? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串而默认的贪婪模式则尽可能多的匹配所搜索的字符串。
(45) . 匹配除 "\n" 之外嘚任何单个字符要匹配包括 ’\n’ 在内的任何字符,请使用象 ’[.\n]’ 的模式

(47) (?:pattern) 匹配pattern 但不获取匹配结果,也就是说这是一个非获取匹配鈈进行存储供以后使用。
(48) (?=pattern) 正向预查在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配也就是说,该匹配不需要获取供以后使用




(53) [a-z] 字符范围,匹配指定范围内的任意字符
(54) [^a-z] 负值字符范围,匹配任何不在指定范围内的任意字符
(55) \b 匹配一个单詞边界,也就是指单词和空格间的位置







(63) \s 匹配任何空白字符,包括空格、制表符、换页符等等等价于[ \f\n\r\t\v]。





(69) \xn 匹配 n其中 n 为十六进制轉义值。十六进制转义值必须为确定的两个数字长
(70) \num 匹配 num,其中num是一个正整数对所获取的匹配的引用。
(71) \n 标识一个八进制转义值戓一个后向引用如果 \n 之前至少 n 个获取的子表达式,则 n 为后向引用否则,如果 n 为八进制数字 (0-7)则 n 为一个八进制转义值。
(72) \nm 标识一个八進制转义值或一个后向引用如果 \nm 之前至少有is preceded by at least nm 个获取得子表达式,则 nm 为后向引用如果 \nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的后向引用如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7)则 \nm 将匹配八进制转义值 nm。









(82) 利用正则表达式匹配多个字符串限制网页表单里的文本框输入内容:





















































}

我需要做批字符串定位目标数據文件格式为:

>下一个字符串名

以下为实际例子,字符串长度有删节:

单一文件大小为120M。

每个字符串长3k左右构成字符串的字符只有A,T,C,G四種。

待检索字符串恒为25字节检索结果是待检索字符串在哪个目标数据字符串的第几字节。可能有多个匹配结果

我想了一个方法,但没能力写代码:

每目标字符串连续每25字节(1..25,2..26,3..27,...)做crc8的hash对hash做索引(好像一般用btree?),查询时把待检索字符串算crc8对匹配项逐个作普通字符串比较(eq)。

至於hash长度我也不知道多长合适。25字节的信息熵是50bit好像crc4就可以了?长了费内存短了每个hash对应的字符串太多影响时间效率。

能写个较完整嘚代码最好只有搜索部分我也会满足的。


}

我要回帖

更多关于 正则表达式匹配多个字符串 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信