正则表达式:非单词字符前面有空格或行的开头

时间:2017-07-02 13:30:58

标签: javascript regex codemirror

我正在尝试匹配前面没有任何内容或空格的@,如下例所示:

@one
    @two 
    who@three
    /@four

我的方法是(^|\s)@,但这会捕获one two three four\s@仅捕获two。如何获得one two,而不是three four

如果相关,则所有@都会被一封信继承。

3 个答案:

答案 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); } } #允许/^ *@(.+)/之前的零个或多个空格,然后开始匹配所有内容,直到换行符。

Javascript Demo

答案 2 :(得分:1)

如果你可以使用lookbehind,这应该工作(原生javascript不支持):

(?<=\s|^)@