正则表达式排除 '\r\n'

3

我有一个字符串:

\r\ndsadasdsad\das\rdasdsacxz\ndasdsa\r\nadsadas\e

我想制作一个正则表达式,它可以匹配所有带有 '\' 前缀的字符,但不包括 "\r\n",所以它应该是 '\.' 而不是 '\r\n'

1
你在用什么编程语言写这个程序? - Bryan Elliott
4个回答

3

0

这个正则表达式应该匹配一个单独的字符,它前面有一个\,但不是序列\r\n的一部分:

(?:(?<!\\)|(?!r\\n))(?:(?<!\\r\\)|(?!n))(?<=\\).

你可以在这里找到解释。


-1

这将匹配所有在前面有斜杠且不是“n”或“r”的字符。

(?<=\\)[^rn]

1
所以它不会单独匹配 \r 或 \n - 如果它们没有同时出现,我希望它们被匹配。只有当出现 '\r\n' 时,我不希望它们被匹配。 - karlkar

-1

好的,这应该可以满足您的要求:

根据您的问题,这与"所有带有'\'前缀的字符,但不包括'\r\n'"匹配。

测试字符串:

\r\ndsadasdsad\das\rdasdsacxz\ndasdsa\r\nadsadas\e

正则表达式:

(?:\\r\\n\w*)|(\w+)

匹配项:

MATCH 1 'das'

MATCH 2 'rdasdsacxz'

MATCH 3 'ndasdsa'

MATCH 4 'e'

这是一个示例:http://regex101.com/r/lE7gI7

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接