我正在为我的自动建议密钥搜索寻找正则表达式。
字符串示例:
universal studio japan
universal
japan
基本上如果用户输入" universal jap"或者"通用日本", "环球影城日本"应该匹配。
答案 0 :(得分:1)
这并不是一个非常好的问题,但无论如何你要去:
/universal .+ japan/gi => gi for global & case insensitive
答案 1 :(得分:0)
要匹配单词,您应该用C = C.reshape((C.shape[0], C.shape[1], 1))
tr_C, ts_C, tr_r, ts_r = train_test_split(C, r, train_size=.8)
batch_size = 1000
print('Build model...')
model = Sequential()
model.add(LSTM(8, batch_input_shape=(batch_size, C.shape[1], 1), stateful=True, activation='relu'))
model.add(Dense(1, activation='relu'))
print('Training...')
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(tr_C, tr_r,
batch_size=batch_size, epochs=1,
shuffle=True, validation_data=(ts_C, ts_r))
(单词边界)围绕它们。这将检查以确保存在“单词边界”,其中断言\b
匹配字符串中的位置。
使用类似下面的内容会匹配(^\w|\w$|\W\w|\w\W)
和universal
之间的任何字符,这可能不是您要找的字符,但我发布它以便您(OP)可以决定哪种方法最适合你。
japan
下一个方法只匹配单词字符(\buniversal\b.*\bjap(?:an)?\b
),连字符a-zA-Z0-9_
或单词之间的空格(确保没有其他特殊字符,如点/句点-
) 。正则表达式可以快速复杂化,因此,假设您现在还想匹配小数点或缩写词,此正则表达式将不再是最佳解决方案,您应该使用第一个。
.
另请注意,我已将\buniversal\b[ \w-]*\bjap(?:an)?\b
更改为japan
,因为您的问题指定它也应与jap(?:an)?
匹配。如果不是这种情况,只需用后者替换后者即可。