如何使用正则表达式以逗号分隔的字符串取第一个单词

时间:2010-02-24 13:42:38

标签: regex

我想从该字符串中取第一个逗号分隔值。

"Lines.No;StartPos=3;RightAligned;MaxLength =2"

我使用"\b.*\;"正则表达式来"Lines.No"。但结果是

"Lines.No;StartPos=3;RightAligned;"

感谢。

3 个答案:

答案 0 :(得分:4)

首先,将搜索锚定在字符串的开头。然后使用延迟量词:^\b.*?;或否定字符类:^\b[^;];

但请注意:您的CSV字段(带引号的字符串)中是否会出现分号?如果是这样,仍然可以使正则表达式工作,但会更复杂 - 一个CSV解析器会好得多。

答案 1 :(得分:2)

我知道你正在寻找一个正则表达式,但如果你有分隔字符串,请使用你最喜欢的语言的split()函数,例如在Python中

>>> s="Lines.No;StartPos=3;RightAligned;MaxLength =2"
>>> s.split(";")[0]
'Lines.No'

比正则表达式简单得多。类似地,在PHP中使用explode(),在Perl中使用split(),在C#中使用Split()等等

答案 2 :(得分:1)

你也可以这样做,在python中

>>> x="Lines.No;StartPos=3;RightAligned;MaxLength =2"
>>> x[:x.find(";")]
'Lines.No'