报价:[\d\s]{6,12}
拿起与空间的字符串。如果我不查找空格,它不匹配,所以它不会返回任何内容。 Freespacing也不会返回任何东西。
小心,那是不什么,这样的设计做的,它是在这里工作只是巧合。你也可以得到未知的比赛,比如12个空格,12个数字,4个数字和2个空格,3个数字和6个空格。 {6
是量词范围的下限,12}
是上限。 \s
还包含任何空格字符,因此各种各样的newine,表单提要和选项卡可以是您的字符串。
Freespacing
是完全不同的东西,它只会使您的正则表达式中的空白字符不相关,这样您就可以以更易读的格式进行书写。
不知道更多,找到你的匹配最好的正则表达式可能是这样的,因为它是很清楚的阅读。您需要为此关闭freespacing
。
(?:(\d) (\d) (\d) (\d) (\d) (\d))
像this引用组$1$2$3$4$5$6
- 对于刚刚搜索,你可以做
\d \d \d \d \d \d
- 或用freespacing
(?:(\d)[ ](\d)[ ](\d)[ ](\d)[ ](\d)[ ](\d))
(\d\s){6}
也将匹配您的pattern--如果有一个尾随的spac e,其中\s
取决于风味,几乎是任何whitespace
字符(用于分组的圆括号,而不是用于字符类的方括号),但不适用于替换操作。
即使(\d\s?){6}
,正如注释中所引用的那样,即使没有空格,也存在允许使用6位数字符串(例如235211
)的缺陷。这是因为?
在这种情况下意味着0 or 1 times, as many times as possible
。所以如果它在那里,就抓住它,如果没有,就不要理它。鉴于源的设计,这个正则表达式可以作为一个简单的查找解决方案(?:\d\s(?:\s|$))
其中(?:\s|$)
意味着whitespace character, or if that's not present end of string/line
取决于标志。
http://stackoverflow.com/editing-help –
正则表达式可以匹配一个字符串与2位数与4到10之间的空间:0 – jace
类似于((\ d \ s?){6}'? – sideroxylon