【发布时间】:2017-03-30 11:48:31
【问题描述】:
我现在正在学习正则表达式。我的要求很简单。这是我的正则表达式。
([0-9]*)(\.)([0-9]*)
我的输入是这样的。
1.9
2.8
4.76
3
7.8
我只想返回小数部分。我目前正在打印第三个捕获组 $3。输出是这样的。
9
8
76
3
8
但我的预期输出是这样的。
9
8
76
8
请告诉我如何实现这一目标。每当字符串与我的 $3 不匹配时,都会返回整个字符串。我希望它返回 null 或任何其他默认值(如“0”)。是否可以使用环视来实现这一目标?如果有,怎么做?
【问题讨论】:
-
不,输出肯定不同。见this demo。请分享代码,如果第 3 组为空,我认为您打印输入。
-
请用 $3 代替。你会得到我的输出
-
为什么要“替代”?你想匹配,而不是*替代”。这背后的工具/语言/代码是什么?
-
Paxata 是工具。本工具只有正则表达式替换功能。
-
您确定
REGEXP(@column@,"([0-9]*)(\\.)([0-9]*)","$3")返回不受欢迎的数据吗?此外,也许REGEXP(@column@,"([0-9]+)(?:(\\.)([0-9]+))?","$3")对您更有效(但不确定它是否符合 Paxata 正则表达式语法)。
标签: regex regex-lookarounds capturing-group