Разделение предложений на основе различных шаблонов в Python 3

Оператор == проверяет, указывают ли две ссылки на один и тот же объект или нет. .equals() проверьте фактическое содержимое строки (значение).

Обратите внимание, что метод .equals() принадлежит классу Object (суперкласс всех классов). Вам необходимо переопределить его в соответствии с вашим требованием к классу, но для String оно уже реализовано и проверяет, имеет ли две строки одно и то же значение.

  • Случай 1
    String s1 = "Stack Overflow";
    String s2 = "Stack Overflow";
    s1 == s2;      //true
    s1.equals(s2); //true
    
    Причина: строка литералы, созданные без нуля, хранятся в пуле строк в области перментонов кучи. Таким образом, оба s1 и s2 указывают на один и тот же объект в пуле.
  • Случай 2
    String s1 = new String("Stack Overflow");
    String s2 = new String("Stack Overflow");
    s1 == s2;      //false
    s1.equals(s2); //true
    
    Причина. Если вы создаете объект String с использованием ключевого слова new, ему выделяется отдельное пространство в куче.
0
задан TMikonos 11 March 2019 в 09:30
поделиться

3 ответа

Python имеет это в ре

Try

re.split('; | , | . ',ourString)
0
ответ дан Orrbifold 11 March 2019 в 09:30
поделиться

Используйте вид сзади с классом символов:

import re
s = "I want to be splitted using different patterns. It is a complex task, and not easy to solve; so, I would need help."
result = re.split('(?<=[.,;])\s', s)
print(result)

Вывод:

['I want to be splitted using different patterns.', 
 'It is a complex task,', 
 'and not easy to solve;',
 'so,', 
 'I would need help.']
0
ответ дан Toto 11 March 2019 в 09:30
поделиться

Я не могу придумать ни одного регулярного выражения для этого. Итак, что вы можете сделать, это заменить все различные типы разделителей на определенный пользователем разделитель, скажем, $ DELIMITER $ , а затем разбить предложение на основе этого разделителя.

new_sent = re.sub('[.,;]', '$DELIMITER 

Это приведет к следующему:

['I want to be splitted using different patterns',
 ' It is a complex task',
 ' and not easy to solve',
 ' so',
 ' I would need help',
 '']

ПРИМЕЧАНИЕ: Приведенный выше вывод имеет дополнительную пустую строку. Это потому, что в конце предложения есть точка. Чтобы избежать этого, вы можете либо удалить этот пустой элемент из списка, либо заменить пользовательский разделитель , если он встречается в конце предложения .

new_sent = re.sub('[.,;]', '$DELIMITER 

Если у вас есть список разделителей, вы можете создать шаблон регулярного выражения, используя следующий код:

delimiter_list = [',', '.', ':', ';']
pattern = '[' + ''.join(delimiter_list) + ']' #will result in [,.:;]
new_sent = re.sub(pattern, '$DELIMITER 

Надеюсь, это поможет !!!

, sent) new_sent = re.sub('\$DELIMITER\$', '', new_sent) new_sent.split('$DELIMITER

Надеюсь, это поможет !!!

)

Надеюсь, это поможет !!!

, sent) new_sent = re.sub('\$DELIMITER\$', '', new_sent) new_sent.split('$DELIMITER

Если у вас есть список разделителей, вы можете создать шаблон регулярного выражения, используя следующий код:

delimiter_list = [',', '.', ':', ';']
pattern = '[' + ''.join(delimiter_list) + ']' #will result in [,.:;]
new_sent = re.sub(pattern, '$DELIMITER 

Надеюсь, это поможет !!!

, sent) new_sent = re.sub('\$DELIMITER\$', '', new_sent) new_sent.split('$DELIMITER

Надеюсь, это поможет !!!

)

Надеюсь, это поможет !!!

)

Если у вас есть список разделителей, вы можете создать шаблон регулярного выражения, используя следующий код:

delimiter_list = [',', '.', ':', ';']
pattern = '[' + ''.join(delimiter_list) + ']' #will result in [,.:;]
new_sent = re.sub(pattern, '$DELIMITER 

Надеюсь, это поможет !!!

, sent) new_sent = re.sub('\$DELIMITER\$', '', new_sent) new_sent.split('$DELIMITER

Надеюсь, это поможет !!!

)

Надеюсь, это поможет !!!

, sent) new_sent.split('$DELIMITER

Это приведет к следующему:

['I want to be splitted using different patterns',
 ' It is a complex task',
 ' and not easy to solve',
 ' so',
 ' I would need help',
 '']

ПРИМЕЧАНИЕ: Приведенный выше вывод имеет дополнительную пустую строку. Это потому, что в конце предложения есть точка. Чтобы избежать этого, вы можете либо удалить этот пустой элемент из списка, либо заменить пользовательский разделитель , если он встречается в конце предложения .

new_sent = re.sub('[.,;]', '$DELIMITER 

Если у вас есть список разделителей, вы можете создать шаблон регулярного выражения, используя следующий код:

delimiter_list = [',', '.', ':', ';']
pattern = '[' + ''.join(delimiter_list) + ']' #will result in [,.:;]
new_sent = re.sub(pattern, '$DELIMITER 

Надеюсь, это поможет !!!

, sent) new_sent = re.sub('\$DELIMITER\$', '', new_sent) new_sent.split('$DELIMITER

Надеюсь, это поможет !!!

)

Надеюсь, это поможет !!!

, sent) new_sent = re.sub('\$DELIMITER\$', '', new_sent) new_sent.split('$DELIMITER

Если у вас есть список разделителей, вы можете создать шаблон регулярного выражения, используя следующий код:

delimiter_list = [',', '.', ':', ';']
pattern = '[' + ''.join(delimiter_list) + ']' #will result in [,.:;]
new_sent = re.sub(pattern, '$DELIMITER 

Надеюсь, это поможет !!!

, sent) new_sent = re.sub('\$DELIMITER\$', '', new_sent) new_sent.split('$DELIMITER

Надеюсь, это поможет !!!

)

Надеюсь, это поможет !!!

)

Если у вас есть список разделителей, вы можете создать шаблон регулярного выражения, используя следующий код:

delimiter_list = [',', '.', ':', ';']
pattern = '[' + ''.join(delimiter_list) + ']' #will result in [,.:;]
new_sent = re.sub(pattern, '$DELIMITER 

Надеюсь, это поможет !!!

, sent) new_sent = re.sub('\$DELIMITER\$', '', new_sent) new_sent.split('$DELIMITER

Надеюсь, это поможет !!!

)

Надеюсь, это поможет !!!

)

Это приведет к следующему:

['I want to be splitted using different patterns',
 ' It is a complex task',
 ' and not easy to solve',
 ' so',
 ' I would need help',
 '']

ПРИМЕЧАНИЕ: Приведенный выше вывод имеет дополнительную пустую строку. Это потому, что в конце предложения есть точка. Чтобы избежать этого, вы можете либо удалить этот пустой элемент из списка, либо заменить пользовательский разделитель , если он встречается в конце предложения .

new_sent = re.sub('[.,;]', '$DELIMITER 

Если у вас есть список разделителей, вы можете создать шаблон регулярного выражения, используя следующий код:

delimiter_list = [',', '.', ':', ';']
pattern = '[' + ''.join(delimiter_list) + ']' #will result in [,.:;]
new_sent = re.sub(pattern, '$DELIMITER 

Надеюсь, это поможет !!!

, sent) new_sent = re.sub('\$DELIMITER\$', '', new_sent) new_sent.split('$DELIMITER

Надеюсь, это поможет !!!

)

Надеюсь, это поможет !!!

, sent) new_sent = re.sub('\$DELIMITER\$', '', new_sent) new_sent.split('$DELIMITER

Если у вас есть список разделителей, вы можете создать шаблон регулярного выражения, используя следующий код:

delimiter_list = [',', '.', ':', ';']
pattern = '[' + ''.join(delimiter_list) + ']' #will result in [,.:;]
new_sent = re.sub(pattern, '$DELIMITER 

Надеюсь, это поможет !!!

, sent) new_sent = re.sub('\$DELIMITER\$', '', new_sent) new_sent.split('$DELIMITER

Надеюсь, это поможет !!!

)

Надеюсь, это поможет !!!

)

Если у вас есть список разделителей, вы можете создать шаблон регулярного выражения, используя следующий код:

delimiter_list = [',', '.', ':', ';']
pattern = '[' + ''.join(delimiter_list) + ']' #will result in [,.:;]
new_sent = re.sub(pattern, '$DELIMITER 

Надеюсь, это поможет !!!

, sent) new_sent = re.sub('\$DELIMITER\$', '', new_sent) new_sent.split('$DELIMITER

Надеюсь, это поможет !!!

)

Надеюсь, это поможет !!!

0
ответ дан Rohit Mehrotra 11 March 2019 в 09:30
поделиться
Другие вопросы по тегам:

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