好的,每个人。我有一种SQL代码(与此无关),我想在其中找到一个数字+“,”+俄语中的一些字符串(我的测试字符串是“в”)。这是一个字符串示例,我希望在其中找到:
insert into lemmas (id, word, lemma) values ("37","возбраняется","возбраняться");
这是我在python中的代码:
file_SQL = open('sql_code.txt', 'r', encoding = 'UTF-8')
SQLtext = file_SQL.read()
regux = '([0-9]+)?","' + wordform.lower() #wordform is "в"
find_it = re.search(regux, SQLtext)
found_it = find_it.group(1)
file_SQL.close()
return found_it
最后,我想得到具体的数字。我用这段代码得到的错误:
Traceback (most recent call last):
File "C:\Users\Неро\my_study\homework_4_2016\holy_guacamole_SQL.py", line 109, in <module>
main()
File "C:\Users\Неро\my_study\homework_4_2016\holy_guacamole_SQL.py", line 106, in main
imma_write_myself_a_SQL_file(val4, val3)
File "C:\Users\Неро\my_study\homework_4_2016\holy_guacamole_SQL.py", line 85, in imma_write_myself_a_SQL_file
f_id = find_f_id(wrdform)
File "C:\Users\Неро\my_study\homework_4_2016\holy_guacamole_SQL.py", line 95, in find_f_id
found_it = find_it.group(1)
AttributeError: 'NoneType' object has no attribute 'group'
显然,这意味着re.search()
一无所获。
我也尝试在notepad ++中使用这个正则表达式进行搜索,但它不起作用:
A picture of me trying to find this number before a word starting with "в".
(对不起俄罗斯记事本,希望没有人介意)正如你在图片中看到的那样,文件中存在以“в”开头的单词。
此外,我还尝试了其他几个正则表达式,例如([0-9]+)?\",\"
,([0-9]{1,3})","
。
我尝试用re.findall()
搜索,但我基本上有一个空列表。
答案 0 :(得分:0)
不确定这会有所帮助,但至少可以分享。
您可以尝试将字符串编码为unicode字符。例如в
为\x{0432}
。
您可以在возбраняется
使用[\x{0400}-\x{0450}]+
看到\x{
的完整匹配。{/ 3}}。
以下是转换为unicode的工具:https://regex101.com/r/GRQBLK/1。然后用}
... a = [1, 2, 3, 4, 5, 6]
b = a[1:]
c = a[:-1]
a
=> [1, 2, 3, 4, 5, 6]
b
=> [2, 3, 4, 5, 6]
c
=> [1, 2, 3, 4, 5]
包裹它。