我需要确定一个字符串是否以数字开头 - 我尝试了以下方法无济于事:
if (matches("^[0-9].*)", upper(text))) str = "Title"""
我是 DXL 和 Regex 的新手——我做错了什么?
您需要插入字符来指示仅在字符串开头的匹配项。我添加了加号以匹配所有数字,尽管您可能不需要它来适应您的情况。如果您只是在开始时寻找数字,而不关心后面是否有任何内容,那么您就不再需要了。
string str1 = "123abc"
string str2 = "abc123"
string strgx = "^[0-9]+"
Regexp rgx = regexp2(strgx)
if(rgx(str1)) { print str1[match 0] "\n" } else { print "no match\n" }
if(rgx(str2)) { print str2[match 0] "\n" } else { print "no match\n" }
上面的代码块将打印:
123
no match
@mrhobo 是正确的,你想要这样的东西:
Regexp numReg = "^[0-9]"
if(numReg text) str = "Title"
您不需要upper
,因为您只是在寻找数字。也matches
更多地用于查找与表达式匹配的字符串部分。如果您只想检查整个字符串是否与表达式匹配,那么上面的代码会更有效。
祝你好运!
至少从示例中我发现这个示例应该可以工作:
正则表达式复数 = 正则表达式 "^([0-9].*)$" 如果复数 "15systems" 然后打印 "yes"
资源: http ://www.scenarioplus.org.uk/papers/dxl_regexp/dxl_regexp.htm