我正在尝试创建一个正则表达式,使字符串仅包含0-9
作为字符,并且其长度必须至少为1个字符,且不超过45
。因此,示例是00303039
将匹配,而039330a29
则不匹配。
到目前为止,这就是我所拥有的,但我不确定它是否正确
[0-9]{1,45}
我也试过
^[0-9]{45}*$
但这似乎也不起作用。我对regex不是很熟悉,所以任何帮助都会很好。谢谢
我正在尝试创建一个正则表达式,使字符串仅包含0-9
作为字符,并且其长度必须至少为1个字符,且不超过45
。因此,示例是00303039
将匹配,而039330a29
则不匹配。
到目前为止,这就是我所拥有的,但我不确定它是否正确
[0-9]{1,45}
我也试过
^[0-9]{45}*$
但这似乎也不起作用。我对regex不是很熟悉,所以任何帮助都会很好。谢谢
你几乎到了,你所需要的只是开始锚(^
)和结束锚($
):
^[0-9]{1,45}$
d
是字符类[0-9]
的缩写。您可以将其用作:
^d{1,45}$
锚点强制模式匹配整个输入,而不仅仅是其中的一部分。
您的正则表达式[0-9]{1,45}
查找1到45位数字,因此类似foo1
的字符串也会匹配,因为它包含1
。
^[0-9]{1,45}
查找1到45位数字,但这些数字必须位于输入的开头。它匹配123
,但也匹配223foo
[0-9]{1,45}$
查找1到45位数字,但这些数字必须位于输入的端。它匹配123
,但也匹配foo123
^[0-9]{1,45}$
查找1到45位数字,但这些数字在输入开始和结束时都必须是,实际上它应该是整个输入。
第一个匹配字符串中的任意数字(也允许使用其他字符,例如:“039330a29”)。第二个只允许45位数字(而且不能少于)。所以,两者兼而有之:
^d{1,45}$
其中d
与[0-9]
相同。
如果不希望以零开头,请使用以下正则表达式:
^[1-9]([0-9]{1,45}$)
如果您不介意从零开始,请使用:
^[0-9]{1,45}$
瘾君子提供了正确的答案。至于你所尝试的,我将解释为什么他们没有成功:
[0-9]{1,45}
几乎存在,但它与1到45位的字符串匹配,即使它出现在另一个包含其他字符的较长字符串中。因此,您需要^
和$
将其限制为完全匹配。
^[0-9]{45}*$
匹配一个精确的45位字符串,重复0次或任意次数(*
)。这意味着字符串的长度只能是0或45(90135180…)的倍数。
这两种尝试的结合可能正是您所需要的:
^[0-9]{1,45}$
^[0-9]{1,45}$
正确。
出于某些安全原因,Rails不喜欢使用^和$,也许最好使用A和z来设置字符串的开头和结尾
在这种情况下,也可以使用单词边界()来代替起始锚点(^)和结束锚点($):
d{1,45}
是介于w和w(非单词字符)之间的位置,或者位于字符串的开头或结尾。
I have a simple problem that says: A password for xyz corporation is supposed to be 6 characters long and made up of a combination of letters and digits. Write a program fragment to read in a string ...
The == operator is used to compare two strings in shell script. However, I want to compare two strings ignoring case, how can it be done? Is there any standard command for this?
I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...
I tried to print all the possible combination of members of several vectors. Why the function below doesn t return the string as I expected? #include <iostream> #include <vector> #...
I m trying to initialize string with iterators and something like this works: ifstream fin("tmp.txt"); istream_iterator<char> in_i(fin), eos; //here eos is 1 over the end string s(in_i, ...
I have a string "pc1|pc2|pc3|" I want to get each word on different line like: pc1 pc2 pc3 I need to do this in C#... any suggestions??
Is there a PHP string function that transforms a multi-line string into a single-line string? I m getting some data back from an API that contains multiple lines. For example: <p>Some Data</...
I was trying to speed up a certain routine in an application, and my profiler, AQTime, identified one method in particular as a bottleneck. The method has been with us for years, and is part of a "...