gpt4 book ai didi

JAVA - 正则表达式模式不匹配。 regex101.com 中的匹配项

转载 作者:太空宇宙 更新时间:2023-11-04 09:25:02 26 4
gpt4 key购买 nike

我对正则表达式比较陌生,觉得我错过了一些重要的事情。

我的模式id='([a-zA-Z0-9]+)'适用于我所做的项目的 C# 版本,但不适用于 java 版本。我试图从字符串 IFrame[id='frame'] .leftObject 中获取单词“frame” .

这里是我正在使用的模式和代码的链接。 https://regex101.com/r/MmkGZq/2

        String pattern = "id='([a-zA-Z0-9]+)'";
Pattern r = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE);
Matcher m = r.matcher(jQuerySelector); //<---jQuerySelector = "IFrame[id='frame'] .leftObject"
System.out.println(m.matches()); //<---returns false
return m.group(1);

C# 中的 Regex 读取方式与 Java 中的 Regex 读取方式不同是否有关系?

最佳答案

您的表达式似乎工作正常,也许这个表达式也可以工作,我猜您希望提取框架:

(?<=id=')[^']*(?=')

测试

import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class re{

public static void main(String[] args){

final String regex = "(?<=id=')[^']*(?=')";
final String string = "IFrame[id='frame'] .leftObject";

final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);

while (matcher.find()) {
System.out.println(matcher.group(0));
}

}
}

输出

frame
<小时/>

If you wish to explore/simplify/modify the expression, it's been explained on the top right panel of regex101.com. If you'd like, you can also watch in this link, how it would match against some sample inputs.

<小时/>

关于JAVA - 正则表达式模式不匹配。 regex101.com 中的匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57815805/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com