/((\b([a-zA-Z]{0,15})\b)([^a-z0-9\$_]))/g
我的尝试到目前为止: https://regex101.com/r/d3VUpG/1
示例测试字符串:
(options.method==="
|options.method==="
=options.method==="HEAD"
options.method.options.method==="HEAD"
返回$1
任何连接词的值,例如:
如何找到与点(。)相关的所有单词,然后将其包裹在如下例所示的范围内;
.replace(//gi,'<span class="join">$1</span>')
答案 0 :(得分:2)
您可以使用以下表达式:
/((?:\w+\.)+\w+)/g
<强>解释强>:
(
- 开始捕获第1组
(?:
- 启动非捕获组
\w+\.
- 匹配[a-zA-Z0-9_]
个字符一次或多次,后跟文字.
字符)+
- 非捕获组的结束;将该组匹配一次或多次\w+
- 匹配[a-zA-Z0-9_]
个字符一次或多次)
- 捕获第1组的结束换句话说,非捕获组(?:\w+\.)+
将匹配像option.
这样的子字符串一次或多次,然后是最终的\w+
,它将与最后一个字匹配跟随它的文字.
字符。由于只有一个捕获组包装所有内容,因此您可以将span
标记包裹在第一个组$1
周围。
string.replace(/((?:\w+\.)+\w+)/g, '<span class="join">$1</span>');
如上所述,\w
包含下划线,数字和字母([a-zA-Z0-9_]
),因此如果您只想匹配字母字符,则可以将\w
换成{{1}并使用不区分大小写的标志:
[a-z]