数字的正则表达式以代码开头
我不是Java开发人员,但我正在与Java系统交互。 请帮我用一个正则表达式来检测所有以25678或25677开头的数字
例如,在rails中:
^(25677|25678)
示例输入是256776582036
和256782405036
你可以在下面搜索框中键入要查询的问题!
我不是Java开发人员,但我正在与Java系统交互。 请帮我用一个正则表达式来检测所有以25678或25677开头的数字
例如,在rails中:
^(25677|25678)
示例输入是256776582036
和256782405036
# 1 楼答案
在Java中,正则表达式是相同的,假设数字占据了整行。你可以进一步简化为
如果需要匹配字符串中任意位置的数字,请使用
\b
锚点(如果在Java代码中生成字符串文字,请将反斜杠加倍)添加一个可选的
+
,比如这个[+]?
或者这个\+?
(同样,在字符串文本中包含两倍的反斜杠)请注意,了解正则表达式使用的Java API很重要,因为有些API将要求正则表达式覆盖整个字符串,以便声明它是匹配的
# 2 楼答案
Java的正则表达式语法非常接近rails,尤其是对于这样简单的东西。诀窍在于使用正确的API调用。如果需要进行多个搜索,则值得一次编译该模式并重用它。类似的东西应该可以使用(混合Java和伪代码):
如果是一次性交易,那么您可以通过更改模式以覆盖整个字符串来简化这一切:
matches()
方法测试整个字符串是否与模式匹配;因此,前面的^
锚点是不必要的,但是后面的.*
是需要的如果你需要解释一个可选的前导
+
(正如你在对另一个答案的评论中所指出的那样),只需在模式的开头包含+?
(或者在使用^
之后)# 3 楼答案
或者
如果你这样做
^(25678|25677)[0-9]*
,它保证其他字符都是数字,而不是其他字符应该为你做这件事。。。将查找任意一个数字,然后再查找后面的任何数字
# 4 楼答案
试试这样:
Regex
^2567[78].*$
表示:数字以2567开头,后跟7或8,然后后跟任意字符
如果只需要25677后面的数字,那么regex应该是
^2567[78]\\d*$
,这意味着在开始时匹配字符串后面跟着0或n个数字