regex - 我可以匹配任意长度字符串中另一个字符正下方的字符吗?

标签 regex

给定一个任意长度的字符串、一个换行符和另一个相同长度的字符串,是否可以生成匹配第一行字符正下方字符的正则表达式?

例如,对于所有这些输入,哪个正则表达式模式可以捕获 X 以下的字符:

........X..  and  .X.........  and  .....X..... etc.
...........       ...........       ...........

在我看来,您必须知道 X 的位置才能匹配下面的字符。手动我可以找出模式
X\.+\n.{8}(.)

在此示例中捕获 X 下方的字符
........X..
...........

因为我知道 X 是第一行的第 9 个字符。但是,如果 X 有任何其他位置,这将不起作用,这是问题的核心。

所以问题是:是否可以在正则表达式中创建一个模式,匹配另一个字符下面的字符,它会是什么样子?

最佳答案

假设你提前知道第一行的长度,这样的事情应该适用于 X在任何位置:

/.*?X.{11}(.)/gs

替换 11与您想要的线长。

https://regex101.com/r/HOA9p1/2/

关于regex - 我可以匹配任意长度字符串中另一个字符正下方的字符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57515015/

相关文章:

python - 如何根据正则表达式模式从文本文件中提取数据

javascript - 使用javascript删除字符串中的特定字符

java - 使用正则表达式捕获一组连续数字

python - 正则表达式匹配单独或被下划线包围的单词

javascript - 如何从 JavaScript 中的字符串数组中删除字符模式?

javascript - 切断文件名的扩展名

ruby - 使用带有正则表达式的 Mechanize 来选择要关注的链接中的特定文本

java - 如何将文本文件与多个正则表达式模式进行匹配并计算这些模式的出现次数?

javascript - 如何强制正则表达式不分割 JavaScript 中的匹配项?

php - 用异常(exception)替换重复字符