Дополнительные символы в regex

Я думаю, вы можете забыть о проверке на ноль.

Вместо этого проверьте, есть ли данные, и затем перейдите к столбцам с помощью курсора:

Cursor cursor = fetchOption(0);

if (cursor.moveToFirst()) // data?
   System.out.println(cursor.getString(cursor.getColumnIndex("title")); 

cursor.close(); // that's important too, otherwise you're gonna leak cursors

Также может иметь смысл прочитать учебник по Android. Учебное пособие для блокнота, кажется, отвечает всем требованиям: http://developer.android.com/guide/tutorials/notepad/index.html

6
задан abatishchev 24 April 2011 в 21:02
поделиться

3 ответа

Как насчет:

^[0-9+-]*[0-9][0-9+-]*$

Это гарантирует, что где-то в строке есть хотя бы одна цифра. (Похоже, что в нем может быть много отката. Но, с другой стороны, у него нет + или *, заключенных внутри другого + или *, что мне тоже не нравится.)

8
ответ дан 8 December 2019 в 04:31
поделиться

Как насчет этого:

([+-]?\d[+-]?)+

что означает «одна или несколько цифр, каждая из которых может предшествовать или сопровождаться необязательным плюсом или минусом».

Вот тестовый сценарий Python:

import re
TESTS = "234654 24-3+-2 -234 25485+ ++--+".split()
for test in TESTS:
    print test, ":", re.match(r'([+-]?\d[+-]?)+', test) is not None

, который печатает это:

234654 : True
24-3+-2 : True
-234 : True
25485+ : True
++--+ : False
15
ответ дан 8 December 2019 в 04:31
поделиться
^([+-]*[0-9]+[+-]*)+$

Другое решение, использующее утверждение с положительным прогнозом, гарантирующее наличие хотя бы одного числа.

^[0-9+-]+$(?<=[0-9][+-]*)

Или с использованием утверждения с положительным прогнозом.

(?=[+-]*[0-9])^[0-9+-]+
2
ответ дан 8 December 2019 в 04:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: