尝试创建一个忽略正确整数(1,5,999等)和正斜杠但匹配其他所有内容的正则表达式。例如,它将匹配以下内容:
但忽略
这是一个mod重写。
答案 0 :(得分:4)
[^-0-9\/]+
应该做到这一点。它将匹配任何包含非数字的字符串。
编辑添加减号,也可以在整数中添加,然后包含问题中提到的正斜杠。
答案 1 :(得分:1)
这是一个非常古老的问题,但我注意到当前接受的答案 ([^-0-9\/]
) 与中间有破折号/减号 (-
) 的数字字符串的任何部分都不匹配或在末尾或纯粹由破折号组成。
因此正则表达式将不会在诸如 12-34
、1234-
、--12
、-
或 {{1} 之类的字符串中找到匹配项},即使这些显然不是有效的整数,因此应该被捕获。
要将这些包含在正则表达式中,您可以使用以下内容:
-----
这将匹配
[^-0-9]+|[0-9]+(?=-)|^-$|-{2,}
的任何数字(使用正向预测,处理除开头以外的任何地方都带有破折号的数字)因此这将在任何不是正整数或负整数的字符串中找到匹配项,另见https://regex101.com/r/8zJwCy/1
为了还包括(或更确切地说排除)斜杠,根据 OP 的要求,可以将它们添加到第一个字符组中。
-
请注意,这也不会匹配纯斜线系列([^-0-9\/]+|[0-9]+(?=-)|^-$|-{2,}
、/
、//
、...)和整数之间的多个斜线(///
、{ {1}}、1//2
、1//-2
) 可能需要也可能不需要(当前接受的答案行为相同),请参阅 https://regex101.com/r/8zJwCy/3
为了捕捉这些,添加另外两个匹配斜线系列的可选组,类似于处理破折号的最后两个组。或者,如果您希望单个斜杠 (//1
) 有效,只需添加一组与最后一组类似的组,请参阅 https://regex101.com/r/8zJwCy/4
2//
答案 2 :(得分:0)
这会逐行匹配 - 这是你需要的吗?
^[0-9\/]*$
答案 3 :(得分:0)
这应该可以胜任!
^[0-9\/]+$