我怎么能把这个字符串分割成单独的单词-
给定字符串s=“消费者笔记,国家消费者论坛,50,000卢比,反对ICICI,安德拉邦”
我希望结果是=“消费者笔记”,“国家消费者论坛”,“50,000卢比反对ICICI",”安得拉邦“
我是regex的新手,不能为此编写regex。
目前我正在做这件事
s = "Consumer notes, State Consumer Forum, Rs.50,000 penatly against ICICI,Andhra Pradesh"
result = set(w for w in s.split(r','))
print result
result:-
set(['Andhra Pradesh', ' Rs.50', 'Consumer notes', '000 penatly against ICICI', ' State Consumer Forum'])这给了我5个单词,因为它还将数字50,000分成两部分。我不想让你们分开。我该怎么解决它呢?
发布于 2014-11-09 07:00:57
In [1]: s = "Consumer notes, State Consumer Forum, Rs.50,000 penatly against ICICI,Andhra Pradesh"
In [2]: import re
In [3]: re.split(r'(?<!\d),(?!\d)',s)
Out[3]:
['Consumer notes',
' State Consumer Forum',
' Rs.50,000 penatly against ICICI',
'Andhra Pradesh']您也可以使用re.split(r'(?<!\d),\s*(?!\d)',s)删除,之后的空格。
发布于 2021-02-03 17:56:57
您可以使用以下任一方法
(?<!\d),|,(?!\d)或
,(?!(?<=\d.)\d)请参阅regex #1演示和regex #2 demo。
详细信息
(?<!\d), -前面不紧跟digit| - or,(?!\d)的逗号-后面不紧跟数字的逗号
这种模式的效率不是很高,因为1)交替和2)在模式开始时使用的lookbehind使得正则表达式引擎检查字符串中的每个位置。
, - is...(?!(?<=\d.)\d)的逗号-后面不会紧跟一个数字(参见(?!...\d)),后面紧跟一个数字和任何一个字符(它实际上是一个逗号,所以这里的.和,的作用是一样的)。第二种模式效率更高,因为正则表达式引擎只需要测试文本中的逗号。
https://stackoverflow.com/questions/26823005
复制相似问题