正则表达式量词OR

时间:2016-05-18 05:59:29

标签: regex

我只是在查看文本文件中如何检测和奇数或偶数量(量词)或某个数量(不是范围)的字符。 例如,此正则表达式检测到奇数:

[1,3,5,7,9]

此正则表达式检测数字的数量(1到9):

\d{1,9}

我想找一个奇数金额的数字。

\d{1|3|5|7|9}

但是这种语法不正确。有人能给我正确答案吗?

2 个答案:

答案 0 :(得分:3)

您可以使用带字边界的分组来查找一个数字,后跟任意数量的两个连续数字:

\b\d(\d\d)*\b

以下是一个示例:http://rubular.com/r/vLTJSJIOJh

答案 1 :(得分:1)

你可以使用lookahead和lookbehind以及2n + 1模式

(?<!\d)(?:\d\d)*\d(?!\d)

(?<!REGEX)匹配为负值,(?!REGEX)匹配负数,(?:)使其无法捕获。

测试:http://rubular.com/r/RhTtKq9m9O

  1. Regex lookahead, lookbehind and atomic groups