regex - 正则表达式跳过以查找匹配项
问题描述
我的 MongoDB 数据库中有包含­
字符的字符串(用于分词目的)。
我希望我的表达式也匹配包含它的术语(好像它们不匹配):
search term: haha
output: haha, hahaha, ha­ha
解决方案
它需要将 INPUT 每个字符转换为回车“CR”,因为 CR 可以在任何地方:
let text = "hohoho, hehehe, ha­ha";
let input = "haha"
let cr = "­"
// convert CR into REGEX format
let crr = "(?:"+cr+")?"
// split string into 1 char array
let input_split = input.match(/.{1}/g)
// add cr regex to char
let r = input_split.map(function(i)
{
return crr+i
});
// array to string + last regex
r = r.join('')+crr
console.log(r)
r = new RegExp(r, "i");
let m = text.match(r)
console.log(m)
打开控制台查看工作:
https://jsfiddle.net/1d2m7jb0/1/
输出示例:
(?:­)?h(?:­)?a(?:­)?h(?:­)?a(?:­)?
[
'ha­ha',
index: 16,
input: 'hohoho, hehehe, ha­ha',
groups: undefined
]
推荐阅读
- typescript - 从 didReceiveResponse 回调返回 null 是否有效?
- react-native - 可以在同一个视图上使用多个 iframe(React Native)
- javascript - 如何在 D3.js 中创建axisLeft动态
- cypress - 如何使用 Cypress 更改 Chrome 语言
- python-3.x - 如何交换不同列表和不同大小 Pandas 中的元素?
- search - 如何在 Oracle 中搜索逗号分隔的 DB 列
- javascript - 如何在画布中定位 Path2D SVG 元素?
- ruby-on-rails - 如何在选择框中显示现有数据
- vb.net - 从 DatagridView 创建 Tiff 位图文件
- graphql - AppSync 中的 GraphQL 字段级验证