我有一个琴弦
name1;name2;name4; vs name3;name4;
name3;name4; vs name1;name2;name4;
name3;name9; vs name1;name2;name8 vs name5;name4;name7;
name3;name1; vs name1;name2;name4;
name3;name1;name2 vs name1;name2;
name3;name5; vs name1;name2;name4;
如何使用搜索条件修复正则表达式以获取前3个字符串:
name2
和name4
应该和vs
位于不同的一边吗?
((.*name2.*;)|(.*name4.*;)).* vs .*?((.*name2.*;)|(.*name4.*;))
结果应该是这个
name1;name2;name4; vs name3;name4;
name3;name4; vs name1;name2;name4;
name3;name9; vs name1;name2;name8 vs name5;name4;name7;
答案 0 :(得分:1)
您可能正在寻找类似的东西:
^.*\b(name2|name4)\b.* vs .*\b(?!\1)(name2|name4)\b.*$
查看在线demo
^.*
-启动字符串ancor并匹配除换行符以外的其他任何零次或多次。\b(name2|name4)\b
-匹配单词边界的第一个捕获组,以匹配两个选项中的一个和另一个单词边界。.* vs .*
-匹配文字“ vs”前后的所有内容。\b(?!\1)
-单词边界和捕获内容的负向查找。(name2|name4)\b
-第二捕获组,从两个选项中选出另一个,再加上另一个单词边界。.*$
-匹配所有内容以结束字符串ancor。答案 1 :(得分:0)
首先,让我确保我了解您的问题。如果我们将package butterknife.internal;
import android.support.annotation.NonNull;
import android.view.View;
public abstract class DebouncingOnClickListener implements View.OnClickListener {
static boolean enabled = true;
public final String name = "MyDebouncingOnClickListener";
private static final Runnable ENABLE_AGAIN = new Runnable() {
@Override public void run() {
enabled = true;
}
};
@Override public final void onClick(View v) {
if (enabled) {
enabled = false;
// v.post(ENABLE_AGAIN); !!!The modified code is here!!!!
v.postDelayed(ENABLE_AGAIN, 300);
doClick(v);
}
}
public abstract void doClick(View v);
@NonNull
@Override
public String toString() {
return super.toString();
}
}
视为定界符,则我们有两个或多个名称/组/组。您要匹配name2和name4不共享集合的行吗?您的输入示例中有些不一致。字符串格式是否有可靠的规范?
IE
vs
如果我的假设是正确的,并且您的输入正确不一致,则可以使用类似以下内容的
name1;name2;name4; vs name3;name4; *No match, name2 and name4 share set 1*
name3;name4; vs name1;name2;name4; *No Match, name2 and name4 share set 2
name3;name9; vs name1;name2;name8 vs name5;name4;name7; *Match, name2 and name4 do not share a set
name3;name1; vs name1;name2;name4; *No match, name2 and name4 share set 2
name3;name1;name2 vs name1;name2; *Match? name2 and name4 do not share a set*
我们匹配排除2或4的重复组,其中每个名称可能以分号结尾,并且不被任何非空格字符包围。
https://regex101.com/r/fiVP7Q/1将比我可能更好地解释分组。