从文本中很容易将数字识别为数字或整数,但当数字在自然语言文本中作为文字书写时就不容易了.

为了使用正则表达式识别数字,可以使用以下正则表达式.

digits_recognize = r'[0-9]+'

如何开发一种模式来识别写为数字的数字?

推荐答案

以下解决方案仅适用于Python 3.6之后的版本.

one_to_9 = '((f(ive|our)|s(even|ix)|[tT](hree|wo)|(ni|o)ne|eight))'

ten_to_19 = '((([sS](even|ix)|[fF](our|if)|[nN]ine)[tT][eE]|[eE](ighte|lev))en|[tT]((hirte)?en|welve))'

two_digit_prefix = '((s(even|ix)|[tT](hir|wen)|f(if|or)|eigh|nine)ty)'

one_to_99 = fr'({two_digit_prefix}([- ]{one_to_9})?|{ten_to_19}|{one_to_9})' 

one_to_999 = fr'({one_to_9}[ ]hundred([ ](and[ ])?{one_to_99})?|{one_to_99})'

compiled_pattern = re.compile(one_to_999)

答案改编自here.

Python-3.x相关问答推荐

如何翻转以列形式给出的日期间隔并提取多个重叠时段内每小时的音量?

使用Polars阅读按日期键分区的最新S3镶木地板文件

Python避免捕获特定异常

如何在输入正确的用户名和密码时添加按钮?

Django内置注销视图`不允许的方法(GET):/USERS/LOGOUT/`

我无法直接在 VSCode 中运行该程序,但可以使用 VScode 中的终端运行它

继承自 Counter 与 dict 的类实例的 Deepcopy

在Python中基于组/ID将两个数据帧进行映射,找出较接近的值

找到操作系统的图片文件夹的 CLI

Python3 AttributeError:列表对象没有属性清除

没有可重定向到的 URL.提供一个 url 或在模型上定义一个 get_absolute_url 方法

Await Future 来自 Executor:Future 不能在await表达式中使用

内部如何使用 Python 语法?

在 Python 3.5 中使用 aiohttp 获取多个 url

ValueError:预期的 2D 数组,得到 1D 数组:

Python 3 与 Python 2 映射行为

PIL 在图像上绘制半透明方形覆盖

python中的订单字典索引

字典理解中的操作顺序

有没有办法在多个线程中使用 asyncio.Queue ?