我有成千上万的包含数字的文章描述。
他们看起来像:
约 2760h3x1000.5DIN345x1500e34
结果数字应为:
- 2760
- 1000.5
- 1500
- h3 或 3 不应是解析的结果,因为 h3 只是一个容差
- e34 也一样
- DIN345 是一个需要排除的规范(每个数字都带有尾随 DIN 或 BN)
我目前的正则表达式是:
[^hHeE]([-+]?([0-9]+\.[0-9]+|[0-9]+))
这解决了一切,但规范。我怎样才能让这个“DIN”和“BN”被视为一个字符?
谢谢,汤姆
尝试使用这个正则表达式:
(?<=x)[+-]?0*[0-9]+(?:\.[0-9]+)?|[+-]?0*[0-9]+(?:\.[0-9]+)?(?=h|e)
看起来你想要匹配的测试用例中的每个数字都以 x 开头。
这是正则表达式的第一部分匹配的内容。(?<=x)[+-]?0*[0-9]+(?:\.[0-9]+)?
正则表达式的第二部分匹配直到 h 或 e 的数字。[+-]?0*[0-9]+(?:\.[0-9]+)?(?=h|e)
正则表达式中的两部分[+-]?0*[0-9]+(?:\.[0-9]+)?是为了匹配数字。