Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 是否删除文本中的引用号,但不删除没有引用组的十进制数?(正则表达式)_Regex_Regex Group_Regexp Replace - Fatal编程技术网

Regex 是否删除文本中的引用号,但不删除没有引用组的十进制数?(正则表达式)

Regex 是否删除文本中的引用号,但不删除没有引用组的十进制数?(正则表达式),regex,regex-group,regexp-replace,Regex,Regex Group,Regexp Replace,我已经编写了一个小型python程序来对正则表达式进行修改,并将我的pdf教科书转换成音频文件,以便在开车时收听。我突然想到,我可以使用内置TTS和正则表达式替换的pdf阅读程序Librera Reader来更灵活地完成这项任务,同时能够轻松阅读。但是,Librera阅读器不能在替换文本中使用组引用 这是我一直使用的替代品: ([a-zA-Z|\)|%][\.|\,|a-z|\)])\d+(?:[-,]\d+)* 以下是一个简化版本,它完成了本问题的大部分工作: ([a-zA-Z][\.])\

我已经编写了一个小型python程序来对正则表达式进行修改,并将我的pdf教科书转换成音频文件,以便在开车时收听。我突然想到,我可以使用内置TTS和正则表达式替换的pdf阅读程序Librera Reader来更灵活地完成这项任务,同时能够轻松阅读。但是,Librera阅读器不能在替换文本中使用组引用

这是我一直使用的替代品:

([a-zA-Z|\)|%][\.|\,|a-z|\)])\d+(?:[-,]\d+)*
以下是一个简化版本,它完成了本问题的大部分工作:

([a-zA-Z][\.])\d+
替换为:

\1
有没有一种方法可以使用正则表达式来捕获一个字母,后跟一个句点,后跟一个类似这样的数字,而无需在替换中使用组引用,也无需捕获数字句点数字字符串。这样我就可以进行以下转换:

测试单词。7还有1.5是一个可以测试的数字

测试单词。1.5也是一个可以测试的数字


我知道您在
[…]
中使用了
|
来“更好地”在视觉上分离字符类的各个部分,但是您也使
|
成为了现在匹配文字管道的类的一部分。你需要移除这些管道

为了解决当前的问题,您可以将捕获组转换为正向查找,因为模式的长度已知(在要删除的数字(范围)之前只有两个字符)

你可以用

(?<=[a-zA-Z)%][.,a-z)])\d+(?:[-,]\d+)*

如果我正确理解了您的需求,那么:
re.sub(r')(?