使用正则表达式替换由未知字符串分隔的已知字符串

如何使用正则表达式替换" title="正则表达式替换">正则表达式替换由未知字符串分隔的2个已知字符串?使用正则表达式替换由未知字符串分隔的已知字符串

例如,我可能有

known_string_1 blah_random text blah known string 2

我知道我需要某种形式的refexp两种已知的字符串之间通配符表达的,但作为一个正则表达式nooblet我不知道该怎么使用。两个已知字符串中间的未知字符串可以是任意长度。

我用这个来替换一些旧的代码与新的东西,但事实上,已知的块缩进不同的标签没有帮助。

非常感谢,

詹姆斯

回答:

使用.*作为两个已知字符串之间的未知文本会得到你最方式的模式。但是,如果您有一个类似known_string_1 unknown_text_1 known_string_2 unknown_text_2 known_string_2的字符串呢?

如果你只是使用.*,那么这将匹配贪婪,它会匹配字符串unknown_text_1 known_string_2 unknown_text_2。这是你想要的吗?

如果这不是你想要的(即你只想删除unknown_text_1),那么你需要使用非贪婪修饰符:.*?。另外,我希望你的known_text_1known_text_2字符串不会打开和关闭[X] HTML元素。大家都知道you shouldn't parse [X]HTML with a regular expression。

回答:

很简单,.*将匹配任何字符,任意次数。

因此,对于你的情况在这里,正则表达式这么久

known_string_1.*known_string_2 

应该工作因为没有你知道的字符串的字符本身的元字符,如?+等。在这种情况下,他们需要与逃脱\\?\+

以上是 使用正则表达式替换由未知字符串分隔的已知字符串 的全部内容, 来源链接: utcz.com/qa/265493.html

回到顶部