我试图根据我们创建的自定义标签选择文本。
我想选择以下 BOLD 标记:
[AREA ROW,CHNO]您的卡将以欧元收费。[/ AREA] [AREA UK, 美国,香港]发现,[/ AREA]
但使用以下正则表达式:
\[AREA\s((.*),\sUS,\s.*)\].*?\[.AREA\]
选择完整的一行。我理解为什么它选择整行,但无法找到忽略第一个标记的方法。
[AREA ROW,CHNO]您的卡将以欧元收费。[/ AREA] [AREA UK, 美国,香港]发现,[/ AREA]
你能帮忙吗?
答案 0 :(得分:2)
问题是在你的正则表达式.*
和[AREA\s
之间存在贪婪的,\sUS
,它匹配[AREA\s
和,\sUS
之间的最长匹配。
您可以使用否定字符类使其仅匹配到下一个逗号:
\[AREA\s[^,]+,\sUS,\s.*?\].*?\[\/AREA\]