我正在尝试匹配前面没有任何内容或空格的@
,如下例所示:
@one
@two
who@three
/@four
我的方法是(^|\s)@
,但这会捕获one two three four
。 \s@
仅捕获two
。如何获得one two
,而不是three four
?
如果相关,则所有@
都会被一封信继承。
答案 0 :(得分:1)
Process process = Runtime.getRuntime().exec("su adb help");
//Process process = Runtime.getRuntime().exec("su adb reboot");
//Process process = Runtime.getRuntime().exec("su adb version");
//Process process = Runtime.getRuntime().exec("su adb shell ping -c 1 192.168.62.40");
process.waitFor();
Log.d("PROCESS", "Status: "+process.exitValue());
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
StringBuilder everything = new StringBuilder();
String line;
while( (line = bufferedReader.readLine()) != null) {
everything.append(line);
}
Log.d("PROCESS", "Process output: "+everything.toString());
Toast.makeText(MainActivity.this, everything.toString(), Toast.LENGTH_SHORT).show();
怎么样?也就是说,行开头后跟零或更多的空格,然后是@。 (注意,不同的laguanges有不同的正则规则)
答案 1 :(得分:1)
这是一种方式:
class A
{
int x = 20;
void Interact(A other)
{
if (x % 2 == 0) { other.x++; x /= 2; }
}
public void MakeInteraction(A other)
{
Interact(other);
other.Interact(this);
}
static void Main()
{
A a = new A();
A b = new A();
a.MakeInteraction(b);
}
}
#允许/^ *@(.+)/
之前的零个或多个空格,然后开始匹配所有内容,直到换行符。
答案 2 :(得分:1)
如果你可以使用lookbehind,这应该工作(原生javascript不支持):
(?<=\s|^)@