正则表达式单词边界
regex word boundaries
我正在尝试编写一个正则表达式来匹配字符串与字符串中所有单词的开头。
当用户键入一个字符(或字符串)时,它将用于通过名称或邮政编码(在城市和邮政编码连接的字符串中)查找城市。
问题是它也匹配城市的END(这是不需要的......)
我正在使用以下正则表达式:
patt = new RegExp('\b' + searchchar, 'i')
例如:
- 测试字符串:"Sint-niklaas (9100)"
- 字符类型:'s'
=> 不需要的匹配 Sint-niklaas (9100) <== 问题 :-)
=> 想要比赛 Sint-niklaas (9100)
- 字符类型:'9'
=> 想要匹配 Sint-niklaas (9100) <== ok
我想你正在寻找:
patt = new RegExp('^(?:[^(]+\()?' + searchchar, 'mi');
^
是字符串行开头的锚点(使用 m 修饰符)。输入字母时,由于括号内只有数字,可选的非捕获组失效,字母只能在开头。输入数字时,可选组成功。
我正在尝试编写一个正则表达式来匹配字符串与字符串中所有单词的开头。
当用户键入一个字符(或字符串)时,它将用于通过名称或邮政编码(在城市和邮政编码连接的字符串中)查找城市。
问题是它也匹配城市的END(这是不需要的......) 我正在使用以下正则表达式:
patt = new RegExp('\b' + searchchar, 'i')
例如:
- 测试字符串:"Sint-niklaas (9100)"
- 字符类型:'s'
=> 不需要的匹配 Sint-niklaas (9100) <== 问题 :-)
=> 想要比赛 Sint-niklaas (9100)
- 字符类型:'9'
=> 想要匹配 Sint-niklaas (9100) <== ok
我想你正在寻找:
patt = new RegExp('^(?:[^(]+\()?' + searchchar, 'mi');
^
是字符串行开头的锚点(使用 m 修饰符)。输入字母时,由于括号内只有数字,可选的非捕获组失效,字母只能在开头。输入数字时,可选组成功。