我尝试过很多方法来匹配某个字符串,但我的努力已被证明是无效的。
我需要一个匹配字符串中所有单词的模式。第一个词必须是 在与其余单词匹配之前出现。还有,下面的话 第一个单词应该有一个逗号,除了最后一个单词。
示例
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script src="https://cdn.socket.io/socket.io-1.3.5.js"></script>
<script>
var socket = io();
</script>
</body>
</html>
在此示例中,在模式与剩余字符String str = "var a, n,d, e, g, h"
匹配之前,var
必须存在。字符可以多于示例中的字符,可以是(a, n,d, e, g, h)
。
EDITED
我试过这样的事情
(a, n, d, e, g, h, k, l,...)
并匹配第一组。除String p = "((\\w+),[|\\s+]?)";
a, n, d, e, g
答案 0 :(得分:1)
您可以使用此正则表达式匹配捕获组中的单词:
(?:\bvar\b|\G)\s*(\w+)(?:,|$)
(?:\bvar\b|\G)
匹配var
或\G
在上一场比赛结束时断言位置或第一场比赛的字符串开头。
(?:,|$)
将在捕获组后匹配逗号或字符串结尾。
答案 1 :(得分:0)
请参阅Demo
^var\s+(\w+,\s*)*\w+$