Osc*_*Ryz 1 java regex regex-group
我有这个正则表达式来确定该行是否包含两个下划线:
\s*_{2}(\w+)
Run Code Online (Sandbox Code Playgroud)
任何空格,两个下划线然后一个字.事实证明,我也需要知道没有下划线,所以我有:
\s*(\w+)
Run Code Online (Sandbox Code Playgroud)
可选空格后跟一个单词.然后我得到了第1组,这是我的话.到现在为止还挺好.
问题是当使用两个下划线时采取的操作,当没有使用下划线时几乎与代码相同(除了我举起一个标记)
if( s =~ uderscore ) {
takeGroup( 1 )
yada yada
flag = true
} else if( s =~ noUnderscore {
takeGroup( 1 )
yada yada
flag = false
}
Run Code Online (Sandbox Code Playgroud)
我认为必须有一个更好的方法,而不是重复整个正则表达式并使用和不使用测试.
请改用此正则表达式:
\s*(_{2})?(\w+)
Run Code Online (Sandbox Code Playgroud)
然后简单地测试第一组的存在 - 如果它存在,则下划线存在.那么第1组将成为第2组.