我需要支持我的正则表达式。让我们说我有字符串000001234567
,其中1234567
是一个可变的数字字符串。我需要在前5个零之后开始提取前五位数。
结果应该是:
12345
如果我使用简单的正则表达式(\d{5})
,我会从左边得到前5个数字,但我希望在零之后开始捕获并得到结果12345
。
答案 0 :(得分:1)
根据您使用的语言,这可能略有不同,但在Ruby中:
/0+(\d+)/
这将为您提供1234567
答案 1 :(得分:1)
每个正则表达式引擎在它支持的功能方面略有不同。您的问题目前不包含语言或引擎标记。
使用Perl,Ruby或pcregrep中与Perl兼容的正则表达式解决此问题的一种方法是使用范围修饰符和“keep”运算符。例如,在Ruby中:
List<table> updRecs = Context.tables.toList();
for each
{
if(col1 == 0)
col2 = true
else
col2 = false
}
其他解决方案可能涉及捕获组,否定字符类,零宽度外观或其他引擎特定功能。并非所有功能都适用于所有引擎,因此您的里程可能会有所不同。
答案 2 :(得分:0)
搜索0*([1-9]\d{4})
将跳过前导零,查找一个非零数字,然后查找任意数字的四个。
在表达式中使用[1-9]
可确保第一个捕获的数字不为零。