我正在使用Regex对一组查看工资的字符串执行一些验证。输入字符串可能如下所示:
£21220至£24565
£21220 - £24565
我希望得到这两个数字。最初我正在测试中间有'到'但我得不到匹配。这就是我到目前为止所做的:
£(\ d *)\ S ^到$ \ S£(\ d *)\Ž
理想情况下,我希望它能够正常工作,因此它可以是中间的' - '或'to'。
答案 0 :(得分:2)
使用替换组:
£(\d+)\s*(?:-|to)\s*£(\d+)$
仅当值位于字符串的末尾时才需要$
(您的模式包含\z
,字符串锚点的最后,这就是为什么我在这里使用$
。)
请参阅regex demo。
模式详情:
£
- 一个英镑的货币符号(\d+)
- (捕获)匹配一个或多个数字的组1 \s*
- 0+ whitespaces (?:-|to)
- -
或to
字\s*
- 0+ whitespaces £
- 货币符号(\d+)
- 捕获与一个或多个数字匹配的第2组$
- 字符串结尾(仅在需要时使用)。答案 1 :(得分:2)