java - 如何删除包含多个字符串和注释符号的行的行注释

标签 java regex

我想解析包含由 # 字符引入的单行注释的 KConf 文件。您可以在下面找到此类文件的示例。

https://github.com/torvalds/linux/blob/master/arch/x86/Kconfig

我知道单行测试字符串看起来几乎是随机的,尽管它应该包含大多数(如果不是全部)嵌套哈希和字符串的变体以及不引入字符串的注释中的引号。

我目前使用的正则表达式引擎是 Groovy 中基于 Java 的正则表达式引擎。

测试字符串

Lorem“ipsum #\”dolor”sit amet,“consectetur #\”adipiscing”elit。Maecenas“suscipit #mollis”quam,非#bibendum“elit #eleifend”。 Duis # convallis"luctus nunc, ac luctus lectus dapibus at.

期望的结果

Lorem "ipsum #\"dolor"sat amet, 'consectetur #\' adipiscing' elit.Maecenas 'suscipit #mollis' quam,非

(带前导空格)

#bibendum 'elit # eleifend "in. Duis # convallis"luctus nunc, ac luctus lectus dapibus at.

最佳答案

首先,我对你的字符串进行了转义,以便可以使用 JavaScript 将其存储为变量(因为你似乎没有指定语言,所以我假设是 JS):

var str = 'Lorem "ipsum # "dolor"sat amet,\'consectetur #\' adipiscing\' elit.Maecenas\'suscipit#mollis\' quam, non #bibendum\'elit # eleifend "在。 Duis # convallis"luctus nunc, ac luctus lectus dapibus at.';

要删除“”后跟“#”(后面不跟空格)的所有内容:

str.replace(/ #[^ ].*/, '');

最后,您的第二个期望结果完全没有意义。

所有这一切当然都需要适当的描述来帮助。

关于java - 如何删除包含多个字符串和注释符号的行的行注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21944578/

相关文章:

java - Log4j - org.hibernate.type 不起作用!

java - 通过传递按特定时区格式化的 Java 日期,根据 UTC 日期字符串获取记录时出现问题

java - 将Entity类转换为很多DTO

regex - 从字符串中删除除空格以外的特殊字符

带有变量的 Javascript 复杂正则表达式

javascript - 从正则表达式中解析 css 伪元素内容

python - 将字符串格式的数据转换为列表 - python

java - http ://pubsubhubbub. appspot.com/subscribe 407 需要身份验证

java - 如何在 Mac OS X 上在 Java 1.7 和 Java 1.8 之间来回切换?

python - 正确的日语句子分词器正则表达式- python