java - 正则表达式 获取所有索引

标签 java regex match

我需要获取包含此文本的所有字符串 %variables% 这里有一些文字 %/variables%

示例

%enca% something here %variables% take this text %/variables% 
other stuffs here, I dont need this 
%variables% I need this too %/variables%
other stuffs, etc

我拥有的是这样的:

我尝试这样做:
%变量%(.*?)%/变量%

就像这样工作(只有一场比赛)

http://regexr.com?34cge

但在 Java 中不起作用:

private boolean variablesTag(String s)
    {
    Pattern pattern = Pattern.compile("/%variables%(.*?)%/variables%/gs");
    Matcher matcher = pattern.matcher(s);

    while (matcher.find()) {
     //do some stuff...stored, work with the string, etc...
    };

    return true;
}

如果您能告诉我如何将绳子放入内部,我将非常感激。 我想要的是这样的:

接受这段文字 这也是

我正在使用 NetBeans...

解决方案

Pattern pattern = Pattern.compile("%variables%(.*?)%/variables%",Pattern.MULTILINE|Pattern.DOTALL);

没有标志不起作用

最佳答案

在Java中,你不需要正则表达式上的“/”分隔符,事实上使用它们是不正确的。如果您想向正则表达式添加标志,可以使用 Pattern.compile 的两个参数版本(请参阅 API docs )。

改变

Pattern pattern = Pattern.compile("/%variables%(.*?)%/variables%/gs");

例如:

Pattern pattern = Pattern.compile("%variables%(.*?)%/variables%", Pattern.DOTALL);

然后在循环内使用 matcher.group(1) 访问捕获的内容。

关于java - 正则表达式 获取所有索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15778877/

相关文章:

匹配语句末尾的 Javascript [0]

function - XPATH匹配函数问题——有效但无效

java - 如何创建 ArrayList 并自动为绘制的 Galaga 船分配变量?还要让它用方向键移动?

java - 计算线段之间的交点

国际电话号码的 Javascript 正则表达式

javascript - 电子邮件地址验证的最佳做法(包括 gmail 地址中的 +)

javascript - 验证特定格式

java - 如何解决java.lang.IndexOutOfBoundsException : Invalid index 24, size is 21

java - 找不到符号,符号: Method setDate(Date) in Netbeans

python - 匹配字符串中所有工作日名称的正则表达式