正则表达式:使用 or 运算符组合语句
Regular expression: combining statments with or operator
我需要一个正则表达式,大致结合了
的逻辑
?[1-9][0-9]+\s+X|x
和
X|x+\s*+[1-9][0-9]*
或英文:匹配字母 X(大写或非大写)的模式,前面是一个整数(单个 space 可选)或 后跟一个整数(单个 space 可选)
谢谢。
P.S。上面两个单独的正则表达式只是为了说明;还没有真正测试过它们。
这正是您想要的:
(\d\s?[xX]{1}|[xX]{1}\s?\d)
可能不是 best regex。
你说的是single space optional
所以我用的是\s?
。如果您可以有任意数量的空格,请将 \s
替换为 \s*
尝试使用此:
\d+\s?(X|x)|\s?\d+
这将有效并符合您的要求:
((X|x)\s*\d+)|(\d+\s*(X|x))
解释:
(
(X|x) First character must be an 'X' or 'x'
\s* Second character can be zero or infinite amount of spaces
\d+ Third character has to be one or more digits
)
| or
(
\d+ First character has to be one or more digits
\s* Second character can be zero or infinite amount of spaces
(X|x) Third character must be an 'X' or 'x'
)
您快完成了,您需要用括号将其分组为捕获组并处理那些 2 位数字以外的数字。
/([0-9]+\s{0,1}(X|x))|((X|x)\s{0,1}[0-9]+)/g
将其粘贴到 http://regexr.com/ 中进行试用。我测试了它:
X9847
X 2645
4442 x
x 525521
5254X5541
221 X 266
我需要一个正则表达式,大致结合了
的逻辑?[1-9][0-9]+\s+X|x
和
X|x+\s*+[1-9][0-9]*
或英文:匹配字母 X(大写或非大写)的模式,前面是一个整数(单个 space 可选)或 后跟一个整数(单个 space 可选)
谢谢。
P.S。上面两个单独的正则表达式只是为了说明;还没有真正测试过它们。
这正是您想要的:
(\d\s?[xX]{1}|[xX]{1}\s?\d)
可能不是 best regex。
你说的是single space optional
所以我用的是\s?
。如果您可以有任意数量的空格,请将 \s
替换为 \s*
尝试使用此:
\d+\s?(X|x)|\s?\d+
这将有效并符合您的要求:
((X|x)\s*\d+)|(\d+\s*(X|x))
解释:
(
(X|x) First character must be an 'X' or 'x'
\s* Second character can be zero or infinite amount of spaces
\d+ Third character has to be one or more digits
)
| or
(
\d+ First character has to be one or more digits
\s* Second character can be zero or infinite amount of spaces
(X|x) Third character must be an 'X' or 'x'
)
您快完成了,您需要用括号将其分组为捕获组并处理那些 2 位数字以外的数字。
/([0-9]+\s{0,1}(X|x))|((X|x)\s{0,1}[0-9]+)/g
将其粘贴到 http://regexr.com/ 中进行试用。我测试了它:
X9847
X 2645
4442 x
x 525521
5254X5541
221 X 266