Проблема с регулярным выражением для удаления HTML-ТЭГОВ

Кажется, проблема в том, что вы создаете только один экземпляр вашего объекта Profile перед циклом и добавляете только этот экземпляр в свой список в цикле.

Измените код следующим образом:

public ArrayList getAllProfile() 
    {
        db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_USER, null);

        if (cursor != null)
        {
            ArrayList<Profile> profiles = new ArrayList<>();

            for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext() )
            {
                Profile profile = new Profile(); // create a new instance in your loop, instead only creating one instance before the loop
                profile.setId(cursor.getInt(cursor.getColumnIndex(ID)));
                profile.setFirstName(cursor.getString(cursor.getColumnIndex(FIRST_NAME)));
                profile.setLastName(cursor.getString(cursor.getColumnIndex(LAST_NAME)));
                profile.setFatherName(cursor.getString(cursor.getColumnIndex(FATHER)));
                profile.setAge(cursor.getInt(cursor.getColumnIndex(AGE)));
                profile.setEmail(cursor.getString(cursor.getColumnIndex(EMAIL)));
                profile.setGender(cursor.getInt(cursor.getColumnIndex(GENDER)));
                profile.setPhoneNumber(cursor.getString(cursor.getColumnIndex(PHONE_NUMBER)));
                profiles.add(profile);
                App.myLog("is : " +profile.getFirstName());
            }
            cursor.close();
            return profiles;
        }

        if(cursor != null)
        {
            cursor.close();
            return null;
        }
    }
5
задан Chad Birch 3 April 2009 в 21:59
поделиться

5 ответов

Вы собираетесь столкнуться с большей проблемой, когда Вы видите что-то как:

<doohickey name="<foobar>">

Вы захотите применить что-то как:

gsub(/<[^<>]*>/, "")

... столько, сколько шаблон соответствует.

2
ответ дан 14 December 2019 в 13:48
поделиться

Это регулярное выражение сделало примерно все, что я ожидал, что оно к, кроме него заставило все кавычки быть преобразованными в “и все одинарные кавычки, которые будут изменены на”.

Это не звучит, как будто RegExp сделал бы это. Вы уверены, что это отличается прежде?

Посмотрите этот вопрос здесь для получения информации о проблеме, это имеет превосходный ответ:
Получите не поля формы UTF-8 как UTF-8 в php.

2
ответ дан 14 December 2019 в 13:48
поделиться

Использование CGI:: unescapeHTML после выполнения замены регулярного выражения:

CGI::unescapeHTML(str.gsub(/<\/?[^>]*>/,""))

См. http://www.ruby-doc.org/core/classes/CGI.html#M000547

В вышеупомянутом фрагменте кода gsub удаляет все HTML-тэги. Затем unescapeHTML () возвращается все объекты HTML (такой как <&#8220) к их фактическим символам (<, кавычки, и т.д.)

Относительно другого сообщения на этой странице обратите внимание, что Вы никогда не будете переданным HTML такой как

<tag attribute="<value>">2 + 3 < 6</tag>

(который является недопустимым HTML); то, что можно получить, вместо этого:

<tag attribute="&lt;value&gt;">2 + 3 &lt; 6</tag>

Вызов к gsub преобразует вышеупомянутое к:

2 + 3 &lt; 6

И unescapeHTML закончит задание:

2 + 3 < 6
5
ответ дан 14 December 2019 в 13:48
поделиться

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

После выполнения Вашего регулярного выражения, выполненного выражение для преобразования &8220; к кавычкам и другому для преобразования &8221; к одинарным кавычкам.

-3
ответ дан 14 December 2019 в 13:48
поделиться

Я столкнулся с подобной проблемой с символьными изменениями, это произошло, когда мой код пробежал другой модуль, который осуществил кодировку UTF-8 и затем когда это возвратилось, у меня был другой файл (хлебал массив строк) на моих руках.

0
ответ дан 14 December 2019 в 13:48
поделиться
Другие вопросы по тегам:

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