2

我需要确定一个字符串是否以数字开头 - 我尝试了以下方法无济于事:

if (matches("^[0-9].*)", upper(text))) str = "Title"""

我是 DXL 和 Regex 的新手——我做错了什么?

4

3 回答 3

2

您需要插入字符来指示仅在字符串开头的匹配项。我添加了加号以匹配所有数字,尽管您可能不需要它来适应您的情况。如果您只是在开始时寻找数字,而不关心后面是否有任何内容,那么您就不再需要了。

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
于 2013-10-17T09:06:56.573 回答
1

@mrhobo 是正确的,你想要这样的东西:

Regexp numReg = "^[0-9]"
if(numReg text) str = "Title"

您不需要upper,因为您只是在寻找数字。也matches更多地用于查找与表达式匹配的字符串部分。如果您只想检查整个字符串是否与表达式匹配,那么上面的代码会更有效。

祝你好运!

于 2013-10-02T13:30:01.193 回答
0

至少从示例中我发现这个示例应该可以工作:

正则表达式复数 = 正则表达式 "^([0-9].*)$" 如果复数 "15systems" 然后打印 "yes"

资源: http ://www.scenarioplus.org.uk/papers/dxl_regexp/dxl_regexp.htm

于 2013-10-02T12:00:29.887 回答