Как я могу взять первое слово в строке через запятую, используя регулярное выражение - PullRequest
1 голос
/ 24 февраля 2010

Я хочу взять первое значение, разделенное запятыми, из этой строки.

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

Я использовал "\b.*\;" регулярное выражение, чтобы взять "Lines.No". Но результат

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

спасибо.

Ответы [ 3 ]

4 голосов
/ 24 февраля 2010

Во-первых, закрепите поиск в начале строки. Затем используйте ленивый квантификатор: ^\b.*?; или класс отрицательных символов: ^\b[^;];

Но осторожно: могут ли точки с запятой появляться в ваших полях CSV (в строках в кавычках)? Если это так, регулярные выражения все еще можно заставить работать, но это будет намного сложнее - парсер CSV будет намного лучше.

2 голосов
/ 24 февраля 2010

Я знаю, что вы ищете регулярное выражение, но если у вас есть строка с разделителями, используйте функцию split () вашего любимого языка, например, в Python

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

Гораздо проще, чем регулярное выражение. Аналогично, explode () в PHP, split () в Perl, Split () в C # и т. Д.

1 голос
/ 24 февраля 2010

Вы тоже можете сделать это, в python

>>> x="Lines.No;StartPos=3;RightAligned;MaxLength =2"
>>> x[:x.find(";")]
'Lines.No'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...