我希望在以下条件的java的帮助下制作一个正则表达式.
他们是离开应用程序
(1) CL
(2) RH
Run Code Online (Sandbox Code Playgroud)
我想为String编写正则表达式
CLCLRHRHCL
Run Code Online (Sandbox Code Playgroud)
任何组合,但 RH not more than 2
写这个
^([CL]* | ?> [RH]{1,4})*$
Run Code Online (Sandbox Code Playgroud)
但RH 2条件不起作用
我想在这个问题上加上一些更清楚的说明
字符串不固定
CLCLRHRHCL
字符串也可以从RH开始
喜欢
RHCLCLRHCL CLRHCLRH
或任何组合
但我想在所有字符串中RH不应超过2我正在阅读java文档和其他正则表达式书但仍未找到解决方案.
我的正则表达式是:
^([CL] | [RH] {1,4}) $
这个正则表达式:^ [CL]*| [RH] {1,4} $
工作正常,但当我添加*没有发生RH条件停止工作.
注意:不要担心空格,我不会在输入中提供任何空间.
你真的需要阅读一个正则表达式教程.
我假设空格不仅仅是为了清晰,否则正则表达式甚至不会编译(注意代码编译和正则表达式编译之间的区别),但即使它确实如此,下面的类似参数也会成立.
^([CL]* | ?> [RH]{1,4})*$
Run Code Online (Sandbox Code Playgroud)
表示以下内容:
^)(...)*)
...|...)
[CL]*),然后是空格(" ")(是空格很重要)" ?")后跟"> "1到4个字符,它们是R或H([RH]{1,4})(?>...) 它实际上需要在括号中$)这应该工作:
^(CL)*(RH(CL)*){0,2}$
Run Code Online (Sandbox Code Playgroud)
说明:
^)"CL"字符串((CL)*){0,2})的以下内容:
"RH"字符串"CL"字符串((CL)*)$)一个更容易理解的版本:
^(CL)*(RH)?(CL)*(RH)?(CL)*$
Run Code Online (Sandbox Code Playgroud)
说明:
^)"CL"字符串((CL)*)"RH"字符串(RH?)"CL"字符串((CL)*)"RH"字符串(RH?)"CL"字符串((CL)*)$)参考.
| 归档时间: |
|
| 查看次数: |
625 次 |
| 最近记录: |