У меня есть таблица строк (около 100 000) в следующем формате:
pattern , string
например. -
*l*ph*nt , elephant
c*mp*t*r , computer
s*v* , save
s*nn] , sunny
]*rr] , worry
Для упрощения предположим, что *
обозначает гласный, согласный остается неизменным, а ]
обозначает либо y, либо w (скажем, например, полу-гласные / круглые гласные в фонологии) .
Учитывая шаблон, каков наилучший способ генерации возможных разумных строк? Разумная строка определяется как строка, имеющая каждую из своих последовательных двухбуквенных подстрок, которые не были указаны в шаблоне, внутри набора данных.
например. -
h * ll * -> Привет, привет, привет ...
«Алло» разумно, потому что «ха», «ал», «ло» можно увидеть в наборе данных, как со словами «иметь», «также», «низкий». Две буквы 'll' не учитываются, поскольку они были указаны в шаблоне.
Каковы простые и эффективные способы сделать это?
Существуют ли какие-либо библиотеки / структуры для достижения этой цели?
У меня нет определенного языка, но я предпочитаю использовать Java для этой программы.