我正在尝试从用户那里得到一个句子,并在后端使用正则表达式对其进行预处理以删除特殊字符,然后我需要将特定单词的位置发回以向用户突出显示该单词,但是该位置面临冲突的原词和预处理后的句子不同。
有没有使用Python解决上述问题的最佳方法?
例如:
import re
def text_preprocessing(input_text, string_to_find):
print("Original text is:", input_data)
cleaned_text = [re.sub('[^a-zA-Z0-9#.+]', " ", input_data)]
cleaned_text = [re.sub(' +', " ", text) for text in cleaned_text]
for cleaned_text in cleaned_text: # just to convert list to string
print("preprocessed text is:", cleaned_text)
position = cleaned_text.find(string_to_find)
position = [position, position + len(string_to_find)]
return position
input_text = 'Hi! Hello'
string_to_find = 'Hello'
position = text_preprocessing(input_text, string_to_find)
print(position)
实际输出
Original text is: Hi! Hello
preprocessed text is: Hi Hello
[3, 8]
原句='嗨!你好'
预处理句子='嗨,你好'(刚刚删除了'!'符号)
如果我需要突出显示单词“ Hello”,我只是从后端以(3,8)返回该位置,但是UI中的实际位置是(4,9)] >>
预期输出
Original text is: Hi! Hello preprocessed text is: Hi Hello [4, 9]
OS:Windows 10,Python 3.7,用于预处理的正则表达式
我正在尝试从用户那里得到一个句子,并在后端使用正则表达式对其进行预处理,以删除特殊字符,然后我需要发回特定单词的位置以突出显示...
字符串中的第一个字符在0
的位置,然后Hello
在字符串3
的Hi Hello
的位置。