И вот что-то большее, что я понял из консоли. Как уже упоминалось ранее, восклицательный знак заставляет функцию возвращать логическое значение.
Для последнего синтаксиса:
(функция my_function () {}) () [ ! d0]
Мы можем сделать что-то вроде:
(function add_them (a, b) {return a + b;}) (9,4)
Как одновременное определение функции и вызов.
Изменить: теперь вы спросите, в чем польза '!' определение функции типа. Давайте рассмотрим следующее:
! Function a_would_be_function () {alert («У некоторых барахлов, но внутри функции»); } ()
вы хотели бы выполнить такую функцию, как указано выше, но без '!' будет генерировать ошибку. Надеюсь, я понятен.
Попробуйте
re.search(r'\bis\b', your_string)
Из docs :
\ b Соответствует пустой строке, но только в начале или конце слово.
Обратите внимание, что модуль
re
использует наивное определение «слова» как «последовательность буквенно-цифровых символов или символов подчеркивания», где «буквенно-цифровое» зависит от параметров локали или юникода.Также обратите внимание, что без префикса исходной строки
\b
рассматривается как «обратное пространство» вместо границы слова регулярного выражения.
Попробуйте это с использованием границы слова в регулярном выражении:
>>> x="this is a sample"
>>> y="this isis a sample."
>>> regex=re.compile(r"\bis\b") # For ignore case: re.compile(r"\bis\b", re.IGNORECASE)
>>> regex.findall(y)
[]
>>> regex.findall(x)
['is']
Из документации re.search()
.
It matches the empty string, but only at the beginning or end of a word
E.g. r'\bfoo\b' matches 'foo', 'foo.', '(foo)', 'bar foo baz' but not 'foobar' or 'foo3'
Надеюсь, что это поможет!
Проблема с регулярным выражением состоит в том, что если строка hte, которую вы хотите найти в другой строке, имеет символы регулярных выражений, она становится сложной. любая строка с скобками не сработает.
Этот код найдет слово
word="is"
srchedStr="this is a sample"
if srchedStr.find(" "+word+" ") >=0 or \
srchedStr.endswith(" "+word):
<do stuff>
Первая часть условного поиска текста с пространством с каждой стороны и второй частью улавливает конец строковой ситуации. Обратите внимание, что endwith является логическим, тогда как find
возвращает целое число
test!
не является словом, каким-либо определением, которое я знаю. Интересно, что он работает для сокращений:re.search(r"\bisn't\b", "it isn't bad")
возвращает совпадение. – Jeff Learman 14 June 2018 в 17:16