- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试为 Java 编写一个正则表达式,如果分号没有两个(或更多)前导“-”字符,则匹配。
我只能得到相反的结果:分号至少有两个前导“-”字符。
([\-]{2,}.*?;.*)
但是我需要类似的东西
([^([\-]{2,})])*?;.*
我不知何故无法表达“至少两个字符”。
下面是一些我需要用表达式求值的例子:
; -- a : should match
-- a ; : should not match
-- ; : should not match
--; : should not match
-;- : should match
---; : should not match
-- semicolon ; : should not match
bla ; bla : should match
bla : should not match (; is mandatory)
-;--; : should match (the first occuring semicolon must not have two or more consecutive leading '-')
最佳答案
看来这个正则符合你的要求
String regex = "[^-]*(-[^-]+)*-?;.*";
解释:matches
将接受以下字符串:
[^-]*
可以以非破折号字符开头(-[^-]+)*-?;
有点棘手,因为在我们匹配 ;
之前我们需要确保每个 -
没有另一个-
在它之后:
(-[^-]+)*
每个-
至少有一个非-
后面的字符-?
或 -
被放在;
之前;.*
如果满足先前的条件,我们可以接受 ;
和任何 .*
它后面的字符。 更具可读性的版本,但可能会慢一些
((?!--)[^;])*;.*
解释:
确保有 ;
在字符串中我们可以使用 .*;.*
在比赛中。
但是我们需要在第一个;
之前对字符添加一些条件.
所以要确保匹配 ;
将是第一个我们可以编写这样的正则表达式的
[^;]*;.*
这意味着:
[^;]*
零个或多个非分号字符;
第一个分号.*
零个或多个任何字符(实际上 .
不能匹配像 \n
或 \r
这样的行分隔符)所以现在我们需要做的就是确保字符匹配 [^;]
不属于 --
.为此,我们可以使用 look-around机制例如:
(?!--)[^;]
匹配前[^;]
(?!--)
检查接下来的两个字符是否不是 --
,换句话说,与 [^;]
匹配的字符不能是第一个-
两个系列 --
[^;](?<!--)
检查匹配后是否 [^;]
正则表达式引擎将无法找到 --
如果它会回溯两个位置,换句话说 [^;]
不能是 --
系列中的最后一个字符.关于java - 匹配字符串中第一次出现的分号,前提是前面没有 '--',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24868130/
很高兴和你分享一些有关写python代码的经验,简直就像是品尝一口甜甜的草莓冰淇淋。每当我开始写python代码的时候,就仿佛是开启了一段奇妙的冒险,每一行代码都是我的剧情发展,每一个bug都是我的挑
我有一张看起来像这样的 table , Date Value 01/01/2010 03:59:00 324.44 01/02/2010 09:31:00
我已尽我所能检查但未找到任何 kwds允许您在 y=a-x 上画一条线(例如 pandas )散点图(不一定是最佳拟合线)并将其带到后面(或前面)。 #the data frame ax=df.plo
我已尽我所能检查但未找到任何 kwds允许您在 y=a-x 上画一条线(例如 pandas )散点图(不一定是最佳拟合线)并将其带到后面(或前面)。 #the data frame ax=df.plo
我正在尝试在书签中使用 jquery UI 作为 slider 。并且 jquery ui 要求在普通 jquery 文件之后包含该文件。 所以到目前为止我所尝试的只是将脚本附加到 header ,同
我正在尝试将 div (.portrait_text) 添加到容器 (.gallery_container) 中: 每个图像都会添加到其相应的 .gallery_container 前面。但我也想将
因此,为了避免让自己头疼(反而制造头疼),我试图将一个字符串数组成员放在同名的结构变量前面,但它不起作用并给我一个错误:std::string {aka class std::basic_string
嗨,我的索引页面上的下拉菜单有问题,下拉元素隐藏在我的图像 slider 下方,它位于我的导航栏正下方,我希望能够看到下拉菜单元素,任何帮助将不胜感激非常感谢; 这是我的导航栏 html:
我想在 div 前面移动一个按钮。 http://demo.gbaus.com/index.html在网站中,获取报价按钮不可点击,除非您点击最底部。我希望将它移到前面,以便您可以单击它。 posot
我有一个以时隙为键的 map ,指向分配的客户。并非所有时隙都有指定的客户,它可能既稀疏又密集,所以我坚持使用 map。执行。如果存在分配,则仅存在键。 计数器从槽 1 计数到槽 x,并在每个槽检查分
我有三个 Controller 。一个是 HomeViewController 启动 BlahPageViewController 并且它是单独的页面。其他两个 Controller (BlahPag
我有一个文本区域。我可以设置它的文本 $("#mytextarea").text("foo") 我可以像这样添加到文本区域: $("#mytextarea").prepend("foo") 但是我不能
我喜欢在绘图时生成我自己的网格线,这样我就可以控制刻度线等,我正在用“hist”绘图程序来解决这个问题。 hist(WindSpeed, breaks=c(0:31), freq=TRUE,
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
当我用 Java 发送电子邮件时,如果单词“From”是任何行的第一个单词,则在该单词的开头附加一个“>”字符,我该如何阻止这种情况? 这是我的文字: The following transactio
我有这一行输出 span 标记的名称值: $(this).text($(this).attr("name")); 在“名称”值之前添加字符(特别是美元符号 ($))的最佳方式是什么。 最佳答案 尝试:
在我调用 segue 返回到以前的 View Controller 之一后,我一直在努力解决我的选项卡栏被隐藏的问题。 我读到,在segue之后, View 覆盖了标签栏。有没有办法将标签栏放在 Vi
我的目标是有一个窗口,其中背景有 2 个不同颜色的面板。它们各自覆盖屏幕的特定百分比,并且会定期变化。我通过创建一个 JSplitPane 来做到这一点。但现在我想添加一个 JLabel 在屏幕中间的
我试图让我的导航栏在滚动时出现在正文的顶部。目前它在下面,如图所示。 我还有一个抽屉导航,它在引入 ScrollView 后就停止工作了……我觉得这可能是因为当我单击“汉堡包”图标时,它实际上位于 S
我之前问过类似的问题,但可能不清楚。 我有一个在 Amazon Elastic beanstalk 上运行的 Web 服务 (tomcat 8),它运行良好。然后我在 DomainA.com 上运行网
我是一名优秀的程序员,十分优秀!