繁体   English   中英

"有没有简单的 Java 正则表达式 (*SKIP)(*F) 替代方案?"

[英]Is there a simple Java Regex (*SKIP)(*F) alternative?

您必须匹配您想要避免的内容并使用捕获组来提取您想要的内容(我认为没有其他方法)<\/em> 。 一个方便的模式可以是:

(?:[^\w"]+|"[^"]*")*+(\w+)

这些动词是告诉正则表达式引擎(在本例中为 PCRE)您要丢弃这些匹配项的非常有用的方法。

Java 没有这些动词,但您可以在没有动词(*SKIP)(*F)<\/code>的情况下在 java 上使用相同的方法,然后捕获您想要的内容......所以您可以使用:

".*"|([^\W]+)
or
".*"|(\w+)

不幸的是,我还不能对其他帖子发表评论,但如果有多组引号,Federico Piazza 的解决方案将会失败。 例如,如果您的文本如下:

String text = "test1 \"hello world!\" test2 \"foobar\" test3";

您希望引号之外的单词不包括尾随空格:

[^"\s]++((?=\s*"[^\s])|(?=\s*$)|(?=[^"]+\s+"))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM