我正在尝试编写一个正则表达式,允许数字、逗号和连字符在中间。我有2种模式(x表示数字)
我在第一个模式中尝试了类似的方法(?:-?[0-9])*$
我无法破解第二个图案。我对正则表达式的理解不太好,社区的一些帮助会很好。
有没有一种有效的方法来检查单个正则表达式中的两种模式。
谢谢帕拉尼
你可以试试这个:
^[0-9](?:[-,\ ]{,2}[0-9])*$
或者:
^[0-9](?:[-,\ ]*[0-9])*$
使用
^\d(?:[-,\s]*\d)*$
参见证明。
解释
--------------------------------------------------------------------------------
^ the beginning of the string
--------------------------------------------------------------------------------
\d digits (0-9)
--------------------------------------------------------------------------------
(?: group, but do not capture (0 or more times
(matching the most amount possible)):
--------------------------------------------------------------------------------
[-,\s]* any character of: '-', ',', whitespace
(\n, \r, \t, \f, and " ") (0 or more
times (matching the most amount
possible))
--------------------------------------------------------------------------------
\d digits (0-9)
--------------------------------------------------------------------------------
)* end of grouping
--------------------------------------------------------------------------------
$ before an optional \n, and the end of the
string
Python:
import re
text = '12-34-56-789-0123'
if re.search(r'^\d(?:[-,\s]*\d)*$', text):
print(f'"{text}" is valid')
else:
print(f'"{text}" is invalid')
结果:
"12-34-56-789-0123" is valid
问题内容: 我想用以下代码查找字符串中的所有数字: 我还尝试将定界符添加到正则表达式,使用正数作为的第二个参数,使用仅数字字符串,例如“ 123”作为第一个参数… 但是输出总是 我似乎想念一下正则表达式在Go中的工作原理,但是无法绕开它。这不是有效的表达方式吗? 问题答案: 问题出在你的第二个整数参数上。引用以下软件包的文档: 这些例程使用一个额外的整数参数n;如果n> = 0,则该函数最多返回n
我用Python编写了这个正则表达式并在regex101上进行了测试,但它仍然没有按照我想要的方式工作: 我试图找到的是一种模式,其中字符串可以选择以这些符号之一开头或结尾,中间只有数字: 该列表包括破折号、正斜杠、反斜杠、括号、符号、空格和句号。如果字符串只包含中间的数字,并且在字符串的开头和/或结尾有可选标点,则搜索应返回true。 此正则表达式似乎适用于大多数情况,但如果我在中间的数字中添加
其中,我需要包括连字符和空格。 这意味着还必须可以输入值“”。
问题内容: 我想查找没有重复数字的10位数字,例如: 目前,我正在使用正则表达式,但只能匹配10位数字(它不检查重复项。我正在使用此正则表达式: 可以使用正则表达式完成此操作,还是有更好的方法来实现此目的? 问题答案: 此正则表达式有效: 这使用锚定的否定前瞻和后向引用来断言没有重复的字符。 观看带有示例的现场演示。 在Java中:
问题内容: 当我使用某种方式时,它仍然会触发,好像连字符无效。我试着和 问题答案: 转义使用应该没问题,但是您也可以尝试将其放在字符类的开头或结尾。这应该为您工作:
检查我的代码,并想知道我在这里遗漏了什么,有时它不能返回100%正确的答案