首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >避免基于条件的选择字符的正则表达式模式构造

避免基于条件的选择字符的正则表达式模式构造
EN

Stack Overflow用户
提问于 2013-02-18 20:18:09
回答 2查看 65关注 0票数 1

我已经尝试了以下方法,预计会出现o/p。

代码语言:javascript
复制
String valueIn = test-3-4-HH{3-4}-FF{38-99}
String[] valueInSplit = valueIn.split("-");

o/p array = [test, 3, 4, HH{3, 4}, FF{38, 99}]

是否可以在正则表达式中创建一个模式,以避免"{“和"}”之间的"-“,因此预期的o/p应为

代码语言:javascript
复制
o/p array = [test, 3, 4, HH{3-4}, FF{38-99}]

还有没有别的办法呢。请帮帮忙。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-18 20:44:40

这是可能的,假设只有1级括号{},并且括号是正确打开和关闭的。将此正则表达式与split函数一起使用:

代码语言:javascript
复制
-(?![^{}]*})

作为字符串文字:

代码语言:javascript
复制
"-(?![^{}]*})"

正则表达式检查-当前是否不在括号内,方法是检查是否可以从字符串的当前位置找到结束括号},因为在字符串之间的字符没有左方括号{或右方括号}

票数 1
EN

Stack Overflow用户

发布于 2013-02-18 20:48:41

你可以在你的split中使用一个负向前视来实现这一点。基本上,您需要检查分隔符-后面是否有数字和右括号。

这是我最终得到的结论:

代码语言:javascript
复制
-(?!\d+\})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14936118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档