我正在尝试找到一个看起来像"3/4"
的子字符串(分子和分母的任意数字0-9)。但是,我尝试解析的文本如果是1/4则可能只包含"/4"
。在这些情况下,我不关心"/"
,只想要分母。我当前的正则表达式为"[0-9?\\/0-9]"
,但当我希望将其分组时,它会逐一返回'3/4'
。
有没有人对此有解决方法?
非常感谢!
答案 0 :(得分:1)
这个正则表达式:
[0-9?\/0-9]
是匹配单个数字,问号或斜杠的字符类。你想要这个:
[0-9]?\/[0-9]
或者这个:
\d?\/\d
答案 1 :(得分:0)
通过( )
运算符
[0-9]?\/([0-9])
答案 2 :(得分:0)
我认为你想使用管道创建一个或:
([0-9]\/[0-9])|\/([0-9])
这种方法的缺点是,你需要验证第1组或第2组是否返回了一个匹配...所以如果你有一个完整的分数,你会得到第一组中的结果,如果匹配分母,分母将出现在第二组中。
可能更有意义:
([0-9]*\/[0-9])
然后检查每场比赛的长度,并在必要时删除'/'。
答案 3 :(得分:-1)
请改为尝试:
"([0-9]*\\?[0-9]+)"