Pod*_*dge 0 java regex string pattern-matching
嗨,我想尝试匹配模式的字符串
这是可能的字符串
signal CS, NS, dl: stateType := writeOrRead0;
signal CS, pS : stateType := writeOrRead0;
signal dS : stateType := writeOrRead0;
Run Code Online (Sandbox Code Playgroud)
我只关心第一个结肠的模式.
但是定义的信号数量可以多于一个它可能是三个或四个,即使这是我的正则表达式
^signal\\s*(\\w+),*\\s*(\\w+)\\s*:
Run Code Online (Sandbox Code Playgroud)
它将拾取第二个两个信号,但是对于第二个信号,它会选择CS和pS,但是当我使用它时,下一个信号中的d和S
matcher.group()
Run Code Online (Sandbox Code Playgroud)
分开来
任何人都可以给我一个表达式,它将获取所有信号名称是否有一个两个或三个以上?
如果你想为每个信号名称设置一个组,那是不可能的(除非你有一个信号数量的上限,那么你可以写出整个信息,但它会非常难看).
因此,您必须使用包含名称的一个组,逗号分隔.然后你可以对其进行后期处理以获得真实的信号名称.
这会有类似的东西
^signal\s+((?:\w+(?:,\s*)?)*)\s*:
Run Code Online (Sandbox Code Playgroud)
(请注意,我没有将它作为Java String转义.)
第1组是你的名字.
| 归档时间: |
|
| 查看次数: |
516 次 |
| 最近记录: |