java - 防止正则表达式过早捕获

标签 java regex

我有以下文本,我将在其上运行正则表达式。我想匹配“选定”选项并获取其值。在此示例中,选择了海地。

<option value="502">Guatemala (+502)</option><option value="224">Guinea (+224)</option><option value="245">Guinea-Bissau (+245)</option><option value="592">Guyana (+592)</option><option value="509" selected >Haiti (+509)</option><option value="504">Honduras (+504)</option><option value="852">Hong Kong (+852)</option>

我尝试了这个正则表达式

<option value="(.*?)" selected >

匹配

224">Guinea (+224)</option><option value="245">Guinea-Bissau (+245)</option><option value="592">Guyana (+592)</option><option value="509

我只想匹配“509”。有什么解决办法吗?

最佳答案

您正在匹配第一个 <option value=" 中的所有内容,尝试不匹配引号,即 <option value="([^"]*)" selected > (这意味着双引号之间允许除双引号之外的任何内容:))。

关于java - 防止正则表达式过早捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22790139/

相关文章:

java - 幻灯片动画循环 Android

java - 为什么android无法识别loadurl方法?

javascript - 如何使用正则表达式和javascript将以下命令拆分为标记:

c# - "not this string"的 .NET 正则表达式

javascript - 仅匹配以特定字符结尾的行

Javascript时间转换正则表达式

glassfish - 启动 glassfish 服务器时出现错误

java - 如何将此 JScrollPane 类添加到我的 swing 构建器中?

java - 为基于 testng 的框架进行测试用例清理的最佳方法

java - 在java中按字符拆分字符串