详细列举正则表达式中 ?的用法。

liwh 2003-11-28 01:40:54
如题。
...全文
47 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
redfoilsman 2003-11-28
  • 打赏
  • 举报
回复
谢谢
FileNewExit 2003-11-28
  • 打赏
  • 举报
回复
>>>是不是表示:
在完整的一行中,起始字符不为0-9,变量(后边跟一个.)小于\等于0的时候,取1-9,否则取0-9

不是

^[0-9]\.(?(?<=0\.)0\.[1-9]|[0-9])$

^[0-9]\. 表示以0-9的数字,后加一个.开头 你说的起始字符不为0-9是这样的^[^0-9]
(?(?<=0\.)[1-9]|[0-9])$ 表示以.(?(?<=0\.)[1-9]|[0-9])结束
(?(?<=0\.)[1-9]|[0-9]) (?<=0\.)表示整个字符串要以0.开头;(?(?<=0\.)[1-9]|[0-9])先去测试匹配看整个字符串是不是0.开头的,如果是的话,就用字符(除去前面匹配了[0-9]\.后剩下的字符串)去匹配[1-9],如果不是0.打头的话,就去匹配[0-9]

===>^[0-9]\.(?(?<=0\.)0\.[1-9]|[0-9])$ 匹配的是0.1,0.2,0.3-->9.9这样的字符串
redfoilsman 2003-11-28
  • 打赏
  • 举报
回复
是不是表示:

在完整的一行中,起始字符不为0-9,变量(后边跟一个.)小于\等于0的时候,取1-9,否则取0-9
liwh 2003-11-28
  • 打赏
  • 举报
回复
多谢 xixigongzhu,filenewexit
feilong215 2003-11-28
  • 打赏
  • 举报
回复
up
FileNewExit 2003-11-28
  • 打赏
  • 举报
回复
^(?:(?:[4])(?:\d{12}|\d{15}))$

(?:pattern) 匹配 pattern 但不获取匹配结果,也就是说这是一个非捕获匹配,不进行存储供以后使用.

====>把?:全部去掉再看,可以知道正则表达式表达的是以4打头,后面跟12或15位数字
xixigongzhu 2003-11-28
  • 打赏
  • 举报
回复
^(?:(?:[4])(?:\\d{12}|\\d{15}))$

?:是非捕获组。
这个正则表达式的意思是匹配4开头的后跟12位或者15位数字的字符串。
liwh 2003-11-28
  • 打赏
  • 举报
回复
publicx ,那么要csdn 做什么。我在这耐心的钓。
publicX 2003-11-28
  • 打赏
  • 举报
回复
.NET帮助中有正则表达式的帮助!!
liwh 2003-11-28
  • 打赏
  • 举报
回复
多谢这又怎么解释,不明白
^(?:(?:[4])(?:\\d{12}|\\d{15}))$
FileNewExit 2003-11-28
  • 打赏
  • 举报
回复
(?(?<=0\.)[1-9]|[0-9]) ===> (?(expression)yes|no)

先做匹配测试看能否匹配expression,如果能匹配,就用去匹配yes,否则匹配no
veaven 2003-11-28
  • 打赏
  • 举报
回复
学习
维她奶 2003-11-28
  • 打赏
  • 举报
回复
up
liwh 2003-11-28
  • 打赏
  • 举报
回复
thanks,

^[0-9]\.(?(?<=0\.)[1-9]|[0-9])$

????????
polarlm 2003-11-28
  • 打赏
  • 举报
回复
?
Match any character one time, if it exists
eg:
egrep “?erd” sample.txt
Will match “berd”, “herd”, etc. and “erd”

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧