当前位置: 首页 > 面试题库 >

python re.split()可以按空格,逗号和句点进行拆分,但不适用于1000或1.50

景震博
2023-03-14
问题内容

我想使用pythonre.split()按空格,逗号和句点将字符串拆分成单个单词。但是我不想"1,200"被分裂["1","200"]或被["1.2"]分裂["1", "2"]

l = "one two 3.4 5,6 seven.eight nine,ten"

结果应该是 ["one", "two", "3.4", "5,6" , "seven", "eight", "nine", "ten"]


问题答案:

使用负前瞻和负后瞻:

> s = "one two 3.4 5,6 seven.eight nine,ten"
> parts = re.split('\s|(?<!\d)[,.](?!\d)', s)
['one', 'two', '3.4', '5,6', 'seven', 'eight', 'nine', 'ten']

换句话说,您总是按\s(空格)分隔,并且如果逗号和句点后面 没有 数字(?!\d)或前面
没有(?<!\d)数字,则仅按逗号和句点进行分隔。

DEMO

编辑 :根据@verdesmarald注释,您可能需要使用以下内容:

> s = "one two 3.4 5,6 seven.eight nine,ten,1.2,a,5"
> print re.split('\s|(?<!\d)[,.]|[,.](?!\d)', s)
['one', 'two', '3.4', '5,6', 'seven', 'eight', 'nine', 'ten', '1.2', 'a', '5']

这将拆分"1.2,a,5"["1.2", "a", "5"]

DEMO



 类似资料:
  • 我有一根绳子 我想用逗号分隔,但需要排除括号和引号内的逗号(单引号和双引号)。 这样地

  • 验证必须用点或逗号和最大两个十进制值表示价格值的字符串的最佳方法和解决方案是什么? 、还是其他东西? 接受以下值: 我还尝试了这个RegExp,但它不起作用。

  • 我正在尝试用下划线替换逗号、句号、连字符和空格。我尝试了以下方法,但在字符类中错误

  • 面试题 为什么要进行系统拆分?如何进行系统拆分?拆分后不用 dubbo 可以吗? 面试官心理分析 从这个问题开始就进行分布式系统环节了,现在出去面试分布式都成标配了,没有哪个公司不问问你分布式的事儿。你要是不会分布式的东西,简直这简历没法看,没人会让你去面试。 其实为啥会这样呢?这就是因为整个大行业技术发展的原因。 早些年,印象中在 2010 年初的时候,整个 IT 行业,很少有人谈分布式,更不用

  • 问题内容: 我已经看到了许多相关的问题,但是都没有直接解决我想做的事情。我正在从CSV文件中读取文本行。 所有项目都用引号引起来,有些则在引号内有其他逗号。我想按逗号分隔行,但忽略引号内的逗号。有没有一种方法可以在Python中执行此操作,而无需使用许多正则表达式语句。 一个例子是: 我想将其解析为4个单独的值变量: 我想念一个简单的选择吗? 问题答案: 不要尝试重新发明轮子。 如果要读取CSV文

  • 我想拆分一个字符串基于逗号不包括一个在双引号,也如果有任何相邻的逗号,他们应该被视为单独的令牌 我可以使用正则表达式([^\“]*)\” 但如果有相邻的逗号,它就无法正确地标记。字符串示例 输出应该是 请帮忙