如何按单词边界或数字拆分?
How to split by Word Boundary or a Number?
我有一个使用此正则表达式搜索单词的单词过滤器:
/\b[a-zA-Z-]+\b/
正在搜索单词:"hello"。
- 案例 1:"Hello there" = 正确
- 案例 2:"Hello0 there" = 假
- 案例 3:"Hello_there" = 假
- 案例 4:"Hello-there" = 假
- 案例 5:“4你好”= false
如何设置单词边界以查找 start/end 带有数字、下划线、连字符或除字母以外的任何其他字符的单词?
您可以使用
/(?<![^\W\d])[a-zA-Z]+(?![^\W\d])/
(?<![^\W\d])
否定后视匹配一个位置,该位置不是紧接在非单词和数字字符之外的字符前面,即必须有字符串开头或单词字符但数字.
(?![^\W\d])
否定先行匹配一个位置,该位置没有紧跟一个非单词和数字字符以外的字符,即必须有字符串结尾或字符字符而不是 a数字.
我有一个使用此正则表达式搜索单词的单词过滤器:
/\b[a-zA-Z-]+\b/
正在搜索单词:"hello"。
- 案例 1:"Hello there" = 正确
- 案例 2:"Hello0 there" = 假
- 案例 3:"Hello_there" = 假
- 案例 4:"Hello-there" = 假
- 案例 5:“4你好”= false
如何设置单词边界以查找 start/end 带有数字、下划线、连字符或除字母以外的任何其他字符的单词?
您可以使用
/(?<![^\W\d])[a-zA-Z]+(?![^\W\d])/
(?<![^\W\d])
否定后视匹配一个位置,该位置不是紧接在非单词和数字字符之外的字符前面,即必须有字符串开头或单词字符但数字.
(?![^\W\d])
否定先行匹配一个位置,该位置没有紧跟一个非单词和数字字符以外的字符,即必须有字符串结尾或字符字符而不是 a数字.