在JS Regex中获取2个字符串之间的文本

时间:2017-12-30 18:34:40

标签: javascript regex

我有这个JavaScript代码:

public void start(Stage primaryStage) {
    Pane pane = new Pane();
    primaryStage.setScene(new Scene(pane, 300, 300));
    primaryStage.show();

    pane.setBackground(new Background(new BackgroundFill(Color.BLACK, CornerRadii.EMPTY, Insets.EMPTY)));

    Thread thread = new Thread(() -> {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        System.out.println(str);
    });
    thread.start();
}

我希望#包围的文字变成谷歌搜索的链接。我想在#之间得到文本,而不是改变它。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

Javascript不支持lookbehinds (?<=)

您可以匹配#,捕获而不是#在组中(您可以在替换中使用$1引用)然后再次匹配#:

#([^#]+)#

<强>解释

  • 匹配#
  • 捕获组(
  • 匹配而不是#一次或多次[^#]+
  • 关闭捕获组)
  • 匹配#

&#13;
&#13;
var str = "#foo#";
var regex = /#([^#]+)#/g;
var result = str.replace(regex,"<a href='https://www.google.com/search?q=$1'>$1</a>");
    console.log(result);
&#13;
&#13;
&#13;