正则表达式模式匹配第一个和最后一个标记之间的单词,第一个单词是常量

时间:2015-09-18 10:20:26

标签: java regex string

我尝试过很多方法来匹配某个字符串,但我的努力已被证明是无效的。

我需要一个匹配字符串中所有单词的模式。第一个词必须是  在与其余单词匹配之前出现。还有,下面的话 第一个单词应该有一个逗号,除了最后一个单词。

示例

<!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

2 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式匹配捕获组中的单词:

(?:\bvar\b|\G)\s*(\w+)(?:,|$)

RegEx Demo

(?:\bvar\b|\G)匹配var\G在上一场比赛结束时断言位置或第一场比赛的字符串开头。

(?:,|$)将在捕获组后匹配逗号或字符串结尾。

答案 1 :(得分:0)

请参阅Demo

^var\s+(\w+,\s*)*\w+$