How to extract a substring using this regex pattern? It's give a ValueError: too many values to unpack (expected 1)
How to extract a substring using this regex pattern? It's give a ValueError: too many values to unpack (expected 1)
import re, random, os, datetime, time
from os import remove
from unicodedata import normalize
from glob import glob
def learn_in_real_time(input_text, text):
#Quita acentos y demas diacríticos excepto la ñ
input_text = re.sub(
r"([^n\u0300-\u036f]|n(?!\u0303(?![\u0300-\u036f])))[\u0300-\u036f]+", r"",
normalize("NFD", input_text), 0, re.I
)
input_text = normalize( 'NFC', input_text) # -> NFC
input_text_to_check = input_text.lower() #Convierte a minuscula todo
words = []
words_associations = []
regex_what_who = r"(.*)\¿?(que sabes|que sabias|que sabrias|que te referis|que te refieres|que te referias|que te habias referido|que habias referido|a que|que|quienes|quien)\s*(con que|con lo que|con la que|con|acerca de que|acerca de quienes|acerca de quien|sobre de que|sobre que|sobre de quienes|sobre quienes|sobre de quien|sobre quien|)\s*(son|sean|es|serian|seria)\s*(iguales|igual|similares|similar|parecidos|parecido|comparables|comparable|asociables|asociable|distinguibles|distinguible|distintos|distinto|diferentes|diferente|diferenciables|diferenciable|)\s*(a |del |de |)\s*((?:\w+\s*)+)?"
l = re.search(regex_what_who, input_text_to_check, re.IGNORECASE) #Con esto valido la regex haber si entra o no en el bloque de code
if l:
#print("C")
association, = l.groups()
association = association.strip()
association_check = association + "\n" #Uso estas para las comparaciones, ya que sino las consideraria erroneamente como palabras que no estan en la lista solo por no tener el \n
return text
return text
我需要它来提取 ((?: \ W + \ s *) +) 中的单词并将其作为字符串保存到变量中,但问题是它给了我这个错误:
Traceback (most recent call last):
File "answer_about_learned_in_txt.py", line 106, in <module>
print(learn_in_real_time(input_t, text))
File "answer_about_learned_in_txt.py", line 72, in learn_in_real_time
association, = l.groups()
ValueError: too many values to unpack (expected 1)
如何将((?: \W + \s *) +)中的所有内容提取出来并保存到变量中?
趁现在我问我会怎么做:
a) 提取 ((?: \W + \s *) +) 中的所有内容,如果有空白 spaces 它不会剪切并保存所有内容,例如:“你好,你好吗?
b) 提取 ((?: \W + \s *) +) 中的所有内容,但最多保存到第一个白色 space,例如:“你好”
我遇到的问题是,如果我输入以下内容,元组的位置 6 不会捕捉到我
if l:
#print("C")
#association, = l.groups()
print(l.groups())
association, _temp = l.group(6)
它给了我这个错误
File "answer_about_learned_in_txt.py", line 74, in learn_in_real_time
association, _temp = l.group(6)
ValueError: not enough values to unpack (expected 2, got 0)
In the end I was able to solve it with the following
如果你输入
Que son los cometas
print (l.groups ())
('', 'que', '', 'son', '', '', 'los cometas')
我对元组的第七位感兴趣,从1开始数
association = l.group (7)
这给我:
'los cometas'
让我们将模式字符串更新为逻辑视图并遵循主要功能。
regex_what_who = r"(que sabes|que sabias|que sabrias|que te referis|que te refieres|que te referias|que te habias referido|que habias referido|a que|que|quienes|quien|con que|con lo que|con la que|con|acerca de que|acerca de quienes|acerca de quien|sobre de que|sobre que|sobre de quienes|sobre quienes|sobre de quien|sobre quien|son|sean|es|serian|seria|iguales|igual|similares|similar|parecidos|parecido|comparables|comparable|asociables|asociable|distinguibles|distinguible|distintos|distinto|diferentes|diferente|diferenciables|diferenciable).*(a|del|de)\s*((?:\w+\s*)+)?"
然后,如果我们得到一个或多个结果,首先修复错误:
association, _temp = l.groups()
它起作用了! -)
import re, random, os, datetime, time
from os import remove
from unicodedata import normalize
from glob import glob
def learn_in_real_time(input_text, text):
#Quita acentos y demas diacríticos excepto la ñ
input_text = re.sub(
r"([^n\u0300-\u036f]|n(?!\u0303(?![\u0300-\u036f])))[\u0300-\u036f]+", r"",
normalize("NFD", input_text), 0, re.I
)
input_text = normalize( 'NFC', input_text) # -> NFC
input_text_to_check = input_text.lower() #Convierte a minuscula todo
words = []
words_associations = []
regex_what_who = r"(.*)\¿?(que sabes|que sabias|que sabrias|que te referis|que te refieres|que te referias|que te habias referido|que habias referido|a que|que|quienes|quien)\s*(con que|con lo que|con la que|con|acerca de que|acerca de quienes|acerca de quien|sobre de que|sobre que|sobre de quienes|sobre quienes|sobre de quien|sobre quien|)\s*(son|sean|es|serian|seria)\s*(iguales|igual|similares|similar|parecidos|parecido|comparables|comparable|asociables|asociable|distinguibles|distinguible|distintos|distinto|diferentes|diferente|diferenciables|diferenciable|)\s*(a |del |de |)\s*((?:\w+\s*)+)?"
l = re.search(regex_what_who, input_text_to_check, re.IGNORECASE) #Con esto valido la regex haber si entra o no en el bloque de code
if l:
#print("C")
association, = l.groups()
association = association.strip()
association_check = association + "\n" #Uso estas para las comparaciones, ya que sino las consideraria erroneamente como palabras que no estan en la lista solo por no tener el \n
return text
return text
我需要它来提取 ((?: \ W + \ s *) +) 中的单词并将其作为字符串保存到变量中,但问题是它给了我这个错误:
Traceback (most recent call last):
File "answer_about_learned_in_txt.py", line 106, in <module>
print(learn_in_real_time(input_t, text))
File "answer_about_learned_in_txt.py", line 72, in learn_in_real_time
association, = l.groups()
ValueError: too many values to unpack (expected 1)
如何将((?: \W + \s *) +)中的所有内容提取出来并保存到变量中?
趁现在我问我会怎么做:
a) 提取 ((?: \W + \s *) +) 中的所有内容,如果有空白 spaces 它不会剪切并保存所有内容,例如:“你好,你好吗?
b) 提取 ((?: \W + \s *) +) 中的所有内容,但最多保存到第一个白色 space,例如:“你好”
我遇到的问题是,如果我输入以下内容,元组的位置 6 不会捕捉到我
if l:
#print("C")
#association, = l.groups()
print(l.groups())
association, _temp = l.group(6)
它给了我这个错误
File "answer_about_learned_in_txt.py", line 74, in learn_in_real_time
association, _temp = l.group(6)
ValueError: not enough values to unpack (expected 2, got 0)
In the end I was able to solve it with the following
如果你输入
Que son los cometas
print (l.groups ())
('', 'que', '', 'son', '', '', 'los cometas')
我对元组的第七位感兴趣,从1开始数
association = l.group (7)
这给我:
'los cometas'
让我们将模式字符串更新为逻辑视图并遵循主要功能。
regex_what_who = r"(que sabes|que sabias|que sabrias|que te referis|que te refieres|que te referias|que te habias referido|que habias referido|a que|que|quienes|quien|con que|con lo que|con la que|con|acerca de que|acerca de quienes|acerca de quien|sobre de que|sobre que|sobre de quienes|sobre quienes|sobre de quien|sobre quien|son|sean|es|serian|seria|iguales|igual|similares|similar|parecidos|parecido|comparables|comparable|asociables|asociable|distinguibles|distinguible|distintos|distinto|diferentes|diferente|diferenciables|diferenciable).*(a|del|de)\s*((?:\w+\s*)+)?"
然后,如果我们得到一个或多个结果,首先修复错误:
association, _temp = l.groups()
它起作用了! -)